Были и другие вопросы, похожие на этот, но ответы всегда относятся к конкретному коду JQuery, который я не использую. Вместо этого я использую здесь пример слайд-шоу W3Schools:
http://www.w3schools.com/howto/howto_js_slideshow.asp
У меня есть ссылки на другой странице, и я бы хотел, чтобы каждая из этих ссылок открывала страницу слайд-шоу на определенном слайде.
Последнее, что я пробовал, это следующее:
ССЫЛКА на отдельной странице:
<a href="slideshow.html#currentSlide(3)">
Пунктирные ссылки под слайд-шоу на slideshow.html (не мог придумать, на что еще ссылаться):
<div style="text-align:center">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
<span class="dot" onclick="currentSlide(4)"></span>
<span class="dot" onclick="currentSlide(5)"></span>
<span class="dot" onclick="currentSlide(6)"></span>
</div>
И javascript, который якобы сообщает слайд-шоу, что загружать, на основе хеша:
if (location.hash)
{
$('#' + location.hash.substring(1)).click();
}
Наверное, глупая идея, но я относительно новичок в этом деле и у меня нет идей.
2 ответа
Вы почти получили это, но у вас есть одна проблема. Ваш сценарий, который определяет, какой элемент отображать, ссылается на несуществующий элемент. Вы написали:
$('#' + location.hash.substring(1)).click();
Что будет примерно так:
$('#currentSlide(1)').click();
Это указывает jQuery нацеливаться на элемент с id=currentSlide(1)
, которого нет на вашей странице.
Вместо этого я бы порекомендовал называть ваши URL-фрагменты только индексом изображения, которое вы хотите показать, например:
<a href="slideshow.html#0">Image 1</a>
<a href="slideshow.html#1">Image 2</a>
<a href="slideshow.html#2">Image 3</a>
Затем на странице slideshow.html
используйте эту команду для запуска события клика:
$(document).ready(function() {
if (location.hash) {
var hash = location.hash.slice(1);
$(".dot").eq(hash).click();
}
});
Это будет искать dot
класс в указанном индексе и щелкнуть этот элемент.
Вы можете сделать что-то вроде этого:
if(location.hash){
//assuming you have a hash like this -> slide1
var slide = location.hash;
var slideNumber = slide.replace("#slide","");
currentSlide(slide);
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.