我正在尝试让jQuery Cycle使用每张幻灯片中的唯一名称,以便能够直接链接到每张幻灯片。我在malsups网站上发现了这个:http://jquery.malsup.com/cycle/perma2.html
试图将它合并到我的演示中,但无济于事,不确定我做错了什么? DEMO: http://jsbin.com/uviram/1
即使我转到http://jsbin.com/uviram/1#slide2
,它仍然会引导我http://jsbin.com/uviram/1#slide1
..
$(function() {
var h,
hash = window.location.hash,
hashes = {},
index = 0;
$('.slideshow slide').each(function(i) {
h = $(this).data('hash');
hashes[h] = i;
});
if (hash)
index = hashes[hash.substring(1)] || index;
$('.slideshow').cycle({
fx: 'scrollHorz',
timeout: 0,
prev: $('.prev'),
next: $('.next'),
after: function(curr,next,opts) {
h = $(this).data('hash');
window.location.hash = h;
}
});
});
答案 0 :(得分:1)
我已经更新了你的jsbin演示,现在它可以正常工作了。有三个问题:
首先,我将$('.slideshow slide')
更改为$('.slideshow
.slide')
以正确选择幻灯片。
其次,我将startingSlide选项放入循环调用中。
最后,我放入了一个hashchange侦听器,以便在用户更改时 哈希没有重新加载页面,它将循环到正确的 滑动。
看看你的更新演示,看它是否有效:
答案 1 :(得分:0)
您尚未添加startingSlide
选项以将index
传递给
$('.slideshow').cycle({
/* pass index to startingSlide*/
startingSlide:index,
fx: 'scrollHorz',
timeout: 0,
prev: $('.prev'),
next: $('.next'),
after: function(curr,next,opts) {
h = $(this).data('hash');
window.location.hash = h;
}
});