我有一个带有九张幻灯片的旋转木马,其中第一张有一个“活跃”类。
<ul class='nav'>
<li class='left'>left</li>
<li class='right'>right</li>
</ul>
<ul class='carousel'>
<li class='active'></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
单击“右侧”按钮时,活动类需要移动到下一个li(它还需要应用到最后一个之后的第一个li)。
显然,当单击左键时,活动类需要向相反方向移动。
我尝试了下面的内容,但是我不知道如何让活动类在最后一个之后回到第一个li。
$('.nav .right').click(function(){
$('.carousel .active').removeClass('active').next().addClass('active');
});
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
它肯定可以改进,但以下代码适用于您需要做的事情:
$('.nav .right').click(function(){
var next = $('.carousel .active').removeClass('active').next();
if (next.length == 0) { next = $('.carousel li').first(); }
next.addClass('active');
});
答案 1 :(得分:0)
$('.nav .right').click(function () {
$('.carousel .active:not(:last-child)').removeClass('active').next().addClass('active');
});
$('.nav .left').click(function () {
$('.carousel .active:not(:first-child)').removeClass('active').prev().addClass('active');
});
答案 2 :(得分:0)
尝试
var $carousel = $('.carousel');
$('.nav .right').click(function(){
var next = $carousel.children('.active').removeClass('active').next();
if(!next.length){
next = $carousel.children().first();
}
next.addClass('active');
});
$('.nav .left').click(function(){
var prev = $carousel.children('.active').removeClass('active').prev();
if(!prev.length){
prev = $carousel.children().last();
}
prev.addClass('active');
});
演示:Fiddle
另一种变体:Fiddle