Javascript 这个for loop&;有什么问题;计时器?

Javascript 这个for loop&;有什么问题;计时器?,javascript,for-loop,settimeout,Javascript,For Loop,Settimeout,可能重复: 我希望这个循环将#leftValue中的html从0更改为leftValue,从0开始,上升到leftValue-但是它将#leftValue中的html更改为leftValue的值,而不从0开始 知道我做错了什么吗 for (i=0; i<leftValue; i++) { changeLeft(i); } function changeLeft(num) { var leftTimer = setTimeout(function(){$('#leftVal

可能重复:

我希望这个循环将#leftValue中的html从0更改为leftValue,从0开始,上升到leftValue-但是它将#leftValue中的html更改为leftValue的值,而不从0开始

知道我做错了什么吗

for (i=0; i<leftValue; i++)
{
    changeLeft(i);
}
function changeLeft(num)
{
    var leftTimer = setTimeout(function(){$('#leftValue').html(num+'%')},1000);
}

for(i=0;i您的所有计时器都同时注册,并将在1000毫秒后运行(因此也会同时运行)。您可以将超时设置为例如
num*1000
。这样,某个
num
显示的时间取决于该
num

是的,您的循环将触发一系列设置超时,这些设置超时将在1000毫秒左右开始


您可能希望改用
setInterval
,它可以逐步更改值(即,简单动画).

我相信这是因为我们的for循环不依赖于setTimeout,所以它看起来像是跳过了0到leftValue…值,而实际上它是在生成它们,但超时没有效果。这是正确的!感谢老兄!!!