Javascript 如何在setTimeout函数中获得精确值
简单的问题Javascript 如何在setTimeout函数中获得精确值,javascript,jquery,html,Javascript,Jquery,Html,简单的问题 for (var i = 0; i < 5; i++) { setTimeout(function () { alert(i) }, 3000); } (变量i=0;i
for (var i = 0; i < 5; i++) {
setTimeout(function () { alert(i) }, 3000);
}
(变量i=0;i<5;i++)的
setTimeout(函数(){alert(i)},3000);
}
如何使用i的精确值警报5次
它只给出5次“5”
我需要这样的结果
0
1.
2.
3.
4使用将变量常量值保持在立即调用函数的新范围内的
for (var i = 0; i < 5; i++) {
(function(j) {
setTimeout(function () { alert(j) }, 3000);
}(i));
}
(变量i=0;i<5;i++)的
(职能(j){
setTimeout(函数(){alert(j)},3000);
}(i) );
}
setTimout是异步的,因此当它执行循环时,循环早已完成,
i
的值已更改为5
,因此您需要将其锁定。您可以使用setInterval
替代setTimeout
试试看
@选民:如果你能说明改正我错误的原因,我将不胜感激。!谢谢你。
var xCnt = 0;
var xInterval = setInterval(function()
{
xCnt +=1;
alert(xCnt);
if(xCnt == 5)
{
clearInterval(xInterval);
}
}, 3000);