如果没有next()
,我怎么能回到开头呢?$(function () {
(function hideHeading() {
setInterval(function () {
$('.active').fadeOut(2000, function () {
$(this).removeClass('active').next().addClass('active').fadeIn(2000);
});
}, 2000);
})();
});
这里的例子
答案 0 :(得分:0)
检查next是否为元素,如果没有,请选择第一个兄弟。
var elem = $(this).removeClass('active')
var next = elem.next();
if(next.length===0) {
next = elem.siblings().first();
}
next.addClass('active').fadeIn(2000);
答案 1 :(得分:0)
实际上你不需要setInterval,因为你可以简单地进行如下的递归。如果.next()
不存在,请将指针设置为first()
。
$(function () {
(function hideHeading() {
$(".active").fadeOut(2000, function () {
var $this = $(this).removeClass('active');
var $next = ($this.next().length && $this.next()) || ($this.siblings().first());
$next.addClass('active').fadeIn(2000, hideHeading);
});
}());
});
<强> Updated Pen 强>