以连续的方式执行循环中的所有元素

Execute all elements in a loop in a consecutive manner?

本文关键字:元素 执行 连续 方式 循环      更新时间:2023-09-26

如何在循环中执行函数,使循环中的下一个元素只在前一个元素完成后执行。

$(".welcome>p").each(function() {
    var $this = $(this);
    setTimeout(function() {
        $this.animate({
            opacity: 1
        }, 600);
    });
});

因此,此代码中的所有p元素都将同时运行。如何更改它,使p元素按顺序逐个显示?

谢谢,YonL

each的第一个参数是index,因此可以使用该索引来增加setTimeout,如:

$(".welcome>p").each(function( idx ) {
    var $this = $(this);
    setTimeout(function() {
        $this.animate({
            opacity: 1
        }, 600);
    }, idx * 600);
});