jQuery将类一次一个地添加到下一个列表项,并循环回开始

jQuery将类一次一个地添加到下一个列表项,并循环回开始,jquery,pagination,carousel,listitem,Jquery,Pagination,Carousel,Listitem,我已经创建了一个jQuery循环传送带,它可以循环传送x张幻灯片。我一直在为这个滑块添加分页。每个点都是与每张幻灯片相关的列表项。当第一张幻灯片可见时,第一张幻灯片的类别为当前。单击“下一步”时,该类将从li编号1中删除并添加到li编号2 我遇到的问题是,一旦我浏览了所有列表项,我希望将类“current”添加回第一个列表项-单击“上一个”按钮时,也需要发生相反的情况 以下是分页的jQuery代码: window.next = function() { var li = jQuery("li.c

我已经创建了一个jQuery循环传送带,它可以循环传送x张幻灯片。我一直在为这个滑块添加分页。每个点都是与每张幻灯片相关的列表项。当第一张幻灯片可见时,第一张幻灯片的类别为当前。单击“下一步”时,该类将从li编号1中删除并添加到li编号2

我遇到的问题是,一旦我浏览了所有列表项,我希望将类“current”添加回第一个列表项-单击“上一个”按钮时,也需要发生相反的情况

以下是分页的jQuery代码:

window.next = function() {
var li = jQuery("li.current");
if (li.length)
    li.removeClass("current").next().addClass("current");
else
    jQuery("li").first().addClass("current");
}
window.prev = function() {
var li = jQuery("li.current");
if (li.length)
    li.removeClass("current").prev().addClass("current");
else
    jQuery("li").last().addClass("current");
}
}
和我的html标记:

<ul>
<li class="current"></li>
<li></li>
<li></li>
</ul>
有人能告诉我怎么让这个循环吗? 你可以在这里看到我的作品

试试这个:

window.next = function() {
   var li = jQuery("li.current");
   if (li.length && li.next().length)
       li.removeClass("current").next().addClass("current");
   else {
       li.removeClass("current");
       jQuery("li").first().addClass("current");
   }
}

window.prev = function() {
   var li = jQuery("li.current");
   if (li.length && li.prev().length)
       li.removeClass("current").prev().addClass("current");
   else {
       li.removeClass("current");
       jQuery("li").last().addClass("current");
   }
}

您只需检查是否存在
next
,如果不存在,您必须在末尾,因此选择第一个:

if (li.length){

    var $next = li.next();

    if($next.length == 0) $next = $("li").first();

    li.removeClass("current");
    $next.addClass("current");
}

同样,对于prev.

来说,唯一的问题是,这不会从当前的
中删除该类。您可以将
removeClass
移动到
if
条件,甚至是变量赋值。恐怕这似乎不起作用。三个列表项的类更改仍然存在相同的问题,但没有循环对我来说,它是循环的,当我在你的最后一张图像中单击“下一步”时,它会到达第一个。请确保刷新浏览器,这可能是缓存问题。非常奇怪,清除了浏览历史并重置了浏览器,但仍然没有真正工作。你能不能画出一个快速的JSFIDLE?用下面的答案走近一点。这是我目前工作的一个小插曲。仍然没有循环。适用于后向箭头-由于某些原因,不适用于前向箭头。请看这里:isue是“当前”类在分页中的最后一个li之后将自己添加到页面上的另一个ul。通过删除列表来绕过它。您可以考虑将类添加到<代码> LI<代码>元素中,或者添加到 UL>代码>中,以包含选择器。这样,如果页面上有其他
li
元素,就不会有冲突。