如何在javascript for循环中每次迭代后延迟
How to delay after every iteration in javascript for loop?
可能重复:
如何在JavaScript循环中添加延迟?
在javascript for循环中,如何在每次迭代完成后(或之前(延迟?这是我的代码,但在它设置颜色后,我需要让它"睡眠"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:递增变量
- max:循环次数
- interval:超时间隔(毫秒(
- func:执行每次迭代的函数("i"作为唯一参数传递(
示例用法:
loopTimeout(0, switchers.length, 6000, function(i){
$('#switchers ol li:nth-child(' + (i+1) + ')').css('color', 'green');
});
您可以使用.each()
。
// timeout, in milliseconds to delay each iteration
var actionTimeout = 6000;
$('#switchers ol li').each(function(i, li) {
setTimeout(function() {
$(li).css('color', 'green');
}, i * actionTimeout);
});
JSFiddle
相关文章:
- 延迟迭代对象
- foreach循环每次迭代之间的延迟
- 在javascript for循环的迭代之间应用延迟
- 对于下一次迭代之前的循环延迟
- 在“for”循环迭代之间添加延迟
- 在jQuery的每次迭代之间应用延迟's.each()方法
- JavaScript循环迭代中的POST之间需要延迟
- 如何在最里面的循环等待响应时延迟嵌套迭代
- 为循环迭代创建延迟
- 如何延迟迭代嵌套对象
- 将循环的每次迭代延迟一定时间
- 每个()迭代之间的延迟
- Jquery:为每次迭代设置延迟
- 需要循环两个循环,并在内部循环中使用延迟迭代
- 在每次迭代中延迟迭代对象属性
- 如何在_的每次迭代中添加延迟?js中的每个循环
- javascript中使用下划线的延迟范围迭代
- 特定迭代上的环路延迟
- 用于堆叠图像的for循环迭代延迟
- 通过收集的迭代中的流星延迟