我有一个菜单,可以浏览特定页面上的幻灯片列表。使用下面的代码(HTML),一切都很顺利:
<ul class="dropdown">
<li class="orange"><a href="#" data-jumpslide="2"><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">When to do it</div><div class="clear"></div></div></a></li>
<li class="orange"><a href="#" data-jumpslide="3" ><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">Key faces</div><div class="clear"></div></div></a></li>
<li class="orange"><a href="#" data-jumpslide="5" ><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">Functionalities</div><div class="clear"></div></div></a></li>
</ul>jQuery是:
$('a[data-jumpslide]').each(function(idx, ele){
$(ele).on('click', function(){
var slideToJump = $(this).data('jumpslide');
window.slider.go(false, slideToJump+1);
});
});正如您所看到的,每当单击链接时,它只会移动该特定页面上的幻灯片。
但现在我必须创建一个通用菜单,它可以在任何页面上移动滑块。因此,如果我是页面"Page 1“,并且我单击了"Page 2”处的第7张幻灯片的链接,则代码应打开page 2并移动到幻灯片7。
下面是我如何更改HTML的:
<ul class="dropdown">
<li class="orange"><a href="page2.php" data-jumpslide="2" data-goto="page2"><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">When to do it</div><div class="clear"></div></div></a></li>
<li class="orange"><a href="page2.php" data-jumpslide="2" data-goto="page2" ><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">Key faces</div><div class="clear"></div></div></a></li>
<li class="orange"><a href="page2.php" data-jumpslide="2" data-goto="page2" ><div class="list-item one-liner"><div class="left"><span id="functionality-icon"></span></div> <div class="right">Functionalities</div><div class="clear"></div></div></a></li>
</ul>下面是我如何更改jQuery的:
$('a[data-jumpslide]').each(function(idx, ele){
$(ele).on('click', function(e){
e.preventDefault();
var href = $(this).attr('href');
var slideToJump = $(this).data('jumpslide');
var gotoPage = $(this).data('data-goto');
slideToJump++;
if (gotoPage != '') {
window.slider.go(false, slideToJump);
}
else {
var url = href+'#'+slideToJump;
window.location = url;
}
});
});
var hash = window.location.hash;
$(document).ready(function(idx, ele){
if (hash != '') {
window.setTimeout(function () {
window.slider.go(false, hash);
}, 2000);
}
else {
console.log("No hash found " + hash);
}
});因此,这里发生的情况是,当用户单击任何指向另一个页面(比如Page2)的链接时,它会重定向,在到达那里后,它会检查页面是否有散列。如果是这样,它会将幻灯片移动到该数字。
现在一切都好了,除了幻灯片没有移动到数字!即使代码是相同的,即使window.slider在其中获得了滑块,但它仍然没有移动。
当我在幻灯片更改回调函数上创建了一个console.log时,它给出了“未定义”。(代码如下)
slideChangedCallBack: function(idx, slide) {
if (console) console.log('slideChangedCallBack: '+slide.data('pagename'));
if (s && s.t){
s.pageName = slide.data('pagename');
s.t();
}
...
}发布于 2013-04-27 02:54:41
所以,对于任何想要确切改变的人,我这样做了:
var hash = window.location.hash.substring(1);而不是这个:
var hash = window.location.hash;https://stackoverflow.com/questions/16241449
复制相似问题