2012-07-25 53 views
0

可能重复:
Javascript for loop and setTimeout issue这个for循环和计时器有什么问题?

我想这个循环里面#leftValue的HTML从0更改为leftValue,从0开始并上升,直到leftValue值 - 而是它改变里面#leftvalue到leftValue价值的HTML不为0

开始任何想法是什么我做错了什么?

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

我相信这是因为我们的for循环是不依赖于setTimeout的,所以它会出现像它跳过0到leftValue ...值时,实际上它是生产,但是,如果超时没有效果.. – Jared 2012-07-25 19:58:40

回答

6

您的所有计时器都是同时注册的,并且会在1000毫秒后运行(因此也同时运行)。您可以将超时设置为例如num * 1000。那样,某个num出现的时间取决于那个num

+0

这是正确的!谢啦!!! – daren1212 2012-07-25 20:00:18

1

是的,你的循环发射一串一个定时器的将都开始围绕1000毫秒。

您可能需要使用setInterval相反,它可以逐步改变的值(即简单的动画)。