0

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

以下是该文章中的代码供参考:

var i = 0;
var callback;

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

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

setTimeout(callback, 10000);

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

任何人都可以帮忙吗?提前谢谢了。

4

3 回答 3

2

只是从另一个方向i开始循环article.length

var i = article.length;
var callback;

callback = function () {
    if (i--) {
       $(article[i]).removeClass('something');
       setTimeout(callback, 10000);
    }
};

setTimeout(callback, 10000);
于 2013-09-10T12:45:08.843 回答
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)
})
于 2013-09-10T13:08:11.743 回答
0

做反向:

var i = article.length - 1;
var callback;

callback = function () {
    if (i >= 0) {
       $(article[i]).removeClass('something');

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

setTimeout(callback, 10000);
于 2013-09-10T12:45:56.017 回答