演示
步骤:一次又一次点击1-3,然后点击两次活动的thumbail,然后下一次点击thumbail将不起作用。
我已经用缩略图实现了Flexi Slider,它工作得很好,但有时缩略图是不可点击的。不确定我要去哪里错了。
/* New Slider */
$('.sliderNew #carousel').flexslider({
animation : "slide",
controlNav : true,
animationLoop : true,
slideshow : true,
itemWidth : 140,
itemMargin : 5,
minItems : 1,
asNavFor : '.sliderNew #slider',
reverse : false
});
$('.sliderNew #slider').flexslider({
animation : "slide",
controlNav : false,
animationLoop : true,
slideshow : true,
reverse : false,
sync : ".sliderNew #carousel",
start: function( slider ) {
$('.sliderNew #carousel .slides li').on('click',function(event){
//alert('asd')
$('.sliderNew #slider').flexslider("play");
});
}
});
/* New Slider */
感谢你的帮助。。
谢谢。。
我做了一些挖掘,发现这可能是由于您使用的FlexSlider版本(2.1版)中的一个错误。在Github更新中(不幸的是,它们只回到2.2版),我确实读到了一些关于"点击处理程序更新"的内容,所以我想您很不幸遇到了一个旧错误。我在GitHub上追踪到了这次更新,但这或多或少是一种猜测。
好的一面是,他们已经修复了这个错误。我已经更新了JSFiddle以使用新版本的FlexSlider:http://jsfiddle.net/ennesht2/
你可能还想检查一下你对CSS/定位做了什么,因为这个演示在Safari/Chrome(OSX)中看起来像是崩溃了。我在你的CSS中做了一个快速修复,使导航元素出现在这个新版本中(取消注释height:0
),但你也需要更新你的CSS,使用FlexSlider的2.3版本。
.sliderNew #carousel .flex-viewport {
border :none;
//height:0;
display:inline-block;
width:100%;
}
首先,由于您已经在使用ID来获取DOM元素,因此您可以简单地使用$('#slider')
而不是$('.sliderNew #slider')
。转盘元件的逻辑相同:)
我认为您可能希望在img
元素上设置单击处理程序,而不是它的父元素(li
元素)。也许:
start: function( slider ) {
$('#carousel .slides li img').on('click',function(event){
$('#slider').flexslider("play");
});
}
我对这一点有预感,我认为每当你的幻灯片运行时,它都会从你的拇指上飞过,这在我参与的一个项目中发生过一次。
以下不是z索引的良好实践,但它应该可以帮助您找出问题是否存在。
将以下内容添加到css中以测试理论:
#carousel .slides li{
z-index:9999;
}