使用“each()”迭代时调用delay()

Calling delay() while iterating with `each()`?

本文关键字:调用 delay 迭代 使用 each      更新时间:2023-09-26

我正在尝试错开一些对象淡出视图的速度。我不确定我做错了什么。

从文档中看,我只是像其他方法一样简单地调用它。

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

所以,我在我的代码中尝试了一下:

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

然而,出于某种原因,这并不奏效。无论输入什么时间,一切都会同时消失。

循环同时运行,因此指定不同的延迟,如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");
});

哦,还有。。。您必须首先在淡入淡出之前延迟,因为您希望延迟出现在淡入之前