我需要在类中添加前三个元素,然后再添加下三个元素,依此类推。我尝试使用此代码,但id不起作用。
$.fn.toggle_class = function () {
var lis = $(this).find('li');
var len = lis.lenght();
while(true) {
for (var i = 0; i < len; i += 3) {
first = i;
second = i + 1;
third = i + 2;
lis.delay(100).removeClass('visible');
lis.eq(first).addClass('visible');
lis.eq(second).addClass('visible');
lis.eq(third).addClass('visible');
}
}
return $(this);
};
$('ul').toggle_class();
怎么了?我该如何解决?
您应该使用而不是永无止境的循环,setInterval()
以便可以将控件移交给浏览器:
$.fn.toggle_class = function () {
var lis = this.find('li'),
len = lis.length,
i = 0; // initialize pointer
setInterval(function() {
lis
.removeClass('visible')
.slice(i, i + 3)
.addClass('visible');
// advance pointer
i = (i + 3) % len;
}, 100);
return this;
};
$('ul').toggle_class();
重要的是只调用一次此函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句