用`each()`迭代时调用delay()?

时间:2013-08-04 23:55:32

标签: javascript jquery

我试图错开几个物体淡入视野的速度。我不确定我错了什么。

从文档中,我看起来就像任何其他方法一样调用它。

$( "#foo" ).slideUp( 300 ).delay( 800 ).fadeIn( 400 );

所以,我在我的代码中试过了:

        $.each($children, function(key, value) {
            $(value).fadeIn("slow").delay(1000);
        });

然而,由于某种原因,这不起作用。无论输入的时间如何,一切都在同时消失。

1 个答案:

答案 0 :(得分:3)

循环一次全部运行,因此请指定不同的延迟,如1000,2000,3000等。

这个逻辑是( 1000 * ( index + 1 ) ),所以第0个你得到( 0 + 1 ) * 1000 === 1000,第1个得到( 1 + 1 ) * 1000 === 2000等等

$.each($children, function(index, value) {
    $(value).delay(1000 * (index + 1)).fadeIn("slow");
});

哦,而且......你必须首先在淡入淡出之前延迟,因为你预计延迟会在淡入淡出之前出现