gpt4 book ai didi

javascript - 如何在javascript for循环中的每次迭代后延迟?

转载 作者:行者123 更新时间:2023-11-28 20:40:54 26 4
gpt4 key购买 nike

Possible Duplicate:
How do I add a delay in a JavaScript loop?

如何在 JavaScript for 循环中的每次迭代完成之后(或之前)进行延迟?这是我的代码,但一旦设置颜色,我需要让它“ sleep ”6 秒,然后再移动到列表中的下一个。

for (i = 0; i < switchers.length; i++) {
$('#switchers ol li:nth-child(' + (i+1) + ')').css('color', 'green');
}

我尝试过嵌套 setTimeout,但没有成功,在谷歌搜索后,我决定在这里询问。

最佳答案

您可以创建一个通用函数,允许您以超时间隔进行循环。通常在“for”循环中的代码将进入您作为最后一个参数传入的函数内。

像这样:

var loopTimeout = function(i, max, interval, func) {
if (i >= max) {
return;
}

// Call the function
func(i);

i++;

// "loop"
setTimeout(function() {
loopTimeout(i, max, interval, func);
}, interval);
}
  • i:递增变量
  • ma​​x:循环次数
  • interval:超时间隔(以毫秒为单位)
  • func:执行每次迭代的函数(“i”作为唯一参数传递)

用法示例:

loopTimeout(0, switchers.length, 6000, function(i){
$('#switchers ol li:nth-child(' + (i+1) + ')').css('color', 'green');
});

关于javascript - 如何在javascript for循环中的每次迭代后延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com