我想按顺序将一个类添加到元素集合中。我找到了答案here。
这里参考的是该文章的代码:
var i = 0;
var callback;
callback = function () {
if (i < article.length) {
$(article[i]).addClass('something');
++i;
setTimeout(callback, 10000);
}
};
setTimeout(callback, 10000);
我现在想要从最后一个元素开始删除该类,因此实际上会颠倒动画的顺序。
有人可以帮忙吗?非常感谢提前。
答案 0 :(得分:2)
从另一个方向开始i
为article.length
循环
var i = article.length;
var callback;
callback = function () {
if (i--) {
$(article[i]).removeClass('something');
setTimeout(callback, 10000);
}
};
setTimeout(callback, 10000);
答案 1 :(得分:1)
尽管setTimeout
方法有效,但jQuery提供了一种更优雅的方法:
$(".article").each(function() {
var d = $(this);
$("body").queue(function(next) {
d.addClass("foo");
next();
}).delay(200)
})
要以相反的顺序迭代,首先添加这个小“插件”:
$.fn.reverse = [].reverse;
然后:
$(".article").reverse().each(function() {
var d = $(this);
$("body").queue(function(next) {
d.addClass("foo");
next();
}).delay(200)
})
答案 2 :(得分:0)
做反向:
var i = article.length - 1;
var callback;
callback = function () {
if (i >= 0) {
$(article[i]).removeClass('something');
--i;
setTimeout(callback, 10000);
}
};
setTimeout(callback, 10000);