我希望这个循环将#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);
}
答案 0 :(得分:6)
所有计时器都是同时注册的,并且会在1000毫秒后运行(因此也会同时运行)。您可以将超时设置为例如num * 1000
。这样,某个num
显示的时间取决于num
。
答案 1 :(得分:1)
是的,你的循环正在触发一堆setTimeouts,它们都将在1000毫秒左右开始。
您可能希望使用setInterval
代替,这可以逐步更改值(即简单动画)。