2012-07-25 50 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相反,它可以逐步改變的值(即簡單的動畫)。