为什么我不能有Flexslider的“选择”属性才能正常工作目标是不是其他的DOM订单后非常一个幻灯片时?
基本上,我发现,针对.testA
会的工作目标而.testB
, .testC
,或.testD
会失败 。
<ul class="slides">
<li class="testA testB"><img/></li>
<li class="testA testC"><img/></li>
<li class="testB testD"><img/></li>
<li class="testC testD"><img/></li>
</ul>
这里失败实际上意味着它在第一次显示正常,但在缩略图导航转盘的最后一张幻灯片点击时,会滚动到“无”(白色背景)...
这里是的jsfiddle ,这是缩略图滑块官方样片执行的副本(链接封闭在小提琴)到我添加类和自定义选择。 要检查的各种定位选项,你可能想注释标记添加到当前选择的参数在JS窗口并从以下删除它,无论是#slider
& #carousel
的div。
这个问题正在发生,因为L.164在Flexslider target = $slide.index();
这里jQuery的指数函数负责决定该flexslider导航到合适的目标。 为了更好地理解和解决这个问题,让我们来看看指数函数的不同调用 -
- 如果没有参数被传递给所述的.index()的方法,所述返回值是表示所述第一元素的jQuery对象相对于其兄弟元素中的位置的整数。
- 如果选择字符串作为参数传递,的.index()返回一个整数,指示所述第一元件的jQuery对象相对于由选择器相匹配的元素内的位置。
现在,在您的情况下,例如,如果第一和第四图像被选择/可见光在总共4,然后按照在flexslider索引函数的当前调用,返回的索引值是0和3作为其在仍在寻找不是在过滤/匹配列表由于该flexslider导航错误地图像和原始列表。 在这种情况下,正确的价值观显然是0和1,这就是为什么这个问题是永远存在的第一个两页。
因此,要解决这个问题,您需要使用索引功能的第二次调用在自定义选择的情况下。 更换Flexslider的L.164在默认flexslider js文件下面将解决发出─
target = $slide.index("#carousel " + slider.slides.selector);
文章来源: Use Flexslider's selector property to skip some slides in DOM descending order