从最后一个元素开始按顺序将类添加到元素集合中

时间:2013-09-10 12:42:40

标签: javascript addclass sequential

我想按顺序将一个类添加到元素集合中。我找到了答案here

这里参考的是该文章的代码:

var i = 0;
var callback;

callback = function () {
    if (i < article.length) {
       $(article[i]).addClass('something');

       ++i;
       setTimeout(callback, 10000);
    }
};

setTimeout(callback, 10000);

我现在想要从最后一个元素开始删除该类,因此实际上会颠倒动画的顺序。

有人可以帮忙吗?非常感谢提前。

3 个答案:

答案 0 :(得分:2)

从另一个方向开始iarticle.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);