如何翻转jquery的索引?

时间:2012-10-12 09:56:03

标签: javascript jquery each

  

可能重复:
  JQuery .each() backwards

我使用此代码显示每个div - >这延迟一个动画:

$.fn.slideDelay = function(){
    var delay = 0;
    return this.each(function(){
        $(this).delay(delay).animate({
            opacity: 1,
            top: 0
        }, 2000);
        delay += 1000;
    });
};

到目前为止运作良好...我得到的唯一问题是我需要从最后一个索引开始而不是第一个索引。这意味着最后一个div首先获得动画,然后是前一个,直到第一个为止。

4 个答案:

答案 0 :(得分:1)

理论上,以下内容应该有效:

$.fn.slideDelay = function() {
    var len = this.length,
        delay = (len - 1) * 1000;

    return this.each(function() {
        $(this).delay(delay).animate({
            opacity: 1,
            top: 0
        }, 2000);
        delay -= 1000;
    });
};

DEMO: http://jsfiddle.net/q4cGP/

答案 1 :(得分:1)

你可以撤销收藏......

collection = Array.prototype.reverse.call(collection);

jsFiddle

答案 2 :(得分:1)

只需从jQuery对象中检索数组并将其反转:

var items = jQuery(this).get();
items.reverse();
jQuery.each(items, function() {.....

答案 3 :(得分:0)

使用如下函数映射延迟:

$.fn.slideDelay = function(){
    var max = this.length - 1;
    return this.each(function(i){
        $(this).delay((max - i) * 1000).animate({
            opacity: 1,
            top: 0
        }, 2000);
    });
};