【发布时间】:2016-03-02 18:38:45
【问题描述】:
不久前我开始了一个主题,即让 jQuery 循环插件的多个实例在一个页面上运行,每个实例都使用一组单独的控件。链接:Need multiple jQuery cycle sliders to use different prev/next buttons
我得到的响应似乎是正确的想法,但我无法让它发挥作用。我仍在学习 javascript,有时很难将东西放在正确的位置,但我尝试添加我能想到的任何地方给我的代码,但没有任何效果。这是我的原始脚本:
$('.slides').cycle({
fx: 'scrollHorz',
speed: 'slow',
timeout: 0,
nowrap: true,
pause: 1,
prev: $('.slider-arrow-left'),
next: $('.slider-arrow-right'),
cssBefore:{
top: 0,
opacity: 1,
display: 'block'
},
animOut: {
top: 360
},
before: function(curr, next, opts){
var $curr = $(curr);
var $next = $(next);
},
pause: 1,
pager: '.slider-controls',
pagerAnchorBuilder: function (idx, slide) {
return '.slider-controls li:eq(' + idx + ') a';
}
});
提供的解决方案代码:
$('.slides').each(function(){
/* look for controls only within this instance*/
var nextBtn=$(this).parent().find('.slider-arrow-left');
$(this).cycle({
next: nextBtn
});
var prevBtn=$(this).parent().find('.slider-arrow-right');
$(this).cycle({
prev: prevBtn
});
});
这是正确的代码吗?如果是这样,有人可以给我完整的代码吗?我的基本 HTML 布局是这样的(完整的代码在页面上重复了 4 次):
<div class="slider">
<div class="slides">
<div class="slide">
Images
</div>
<div class="slide">
Images
</div>
</div>
<img src="images/arrow-L.png" alt="Left" class="slider-arrow-left"/>
<img src="images/arrow-R.png" alt="Right" class="slider-arrow-right"/>
</div><!--slider-->
【问题讨论】:
-
你有没有机会创建一个fiddle 来展示你实际拥有的东西?
-
这里是小提琴。 jsfiddle.net/gbYhB/9 出于某种原因,它与实时站点的工作方式略有不同,在实时站点上,无论您单击哪组箭头,它都只控制第一个滑块。我也无法让左箭头显示在小提琴上,但您可以看到右箭头移动所有滑块。