我不确定为什么间隔没有循环。我完全按照教程,但没有运气。建议?
$(document).ready(function(){
setInterval(function() {
$('.current').removeClass('current').next().addClass('current');
}, 2000);
});
答案 0 :(得分:2)
一个可能的<丑陋解决方案:
setInterval(function() {
var $current = $(".current").removeClass("current"),
$next = $current.next();
if ($next.length)
$next.addClass("current");
else
$current.siblings(":first").addClass("current");
}, 2000);
答案 1 :(得分:2)
$(document).ready(function () {
var $li = $('ul li'), i = 0, l = $li.length;
setInterval(function() {
$li.removeClass('current').eq(i % l).addClass('current');
i++;
}, 2000);
});
答案 2 :(得分:0)
当您到达最后一个元素时,您需要返回到开头,而不是使用.next()
。
$(document).ready(function () {
setInterval(function () {
var next = $('.current').removeClass('current').next();
if (next.length == 0) {
next = $("li:first");
}
next.addClass('current');
}, 2000);
});
答案 3 :(得分:0)
当你在最后li
时,next()
没有去第一个。
一个简单的解决方法是在以下后添加:
if($('.current').length <= 0) $('li:first').addClass('current');
答案 4 :(得分:0)
只是添加新内容:
$(document).ready(function () {
setInterval(function () {
$('li').eq(($('.current').removeClass('current').index() + 1) % $('li').size()).addClass('current');
}, 200);
});