2011-07-28 36 views
1

我用window.setInterval函數。這個功能包括3個參數:更改millisec爲window.setInterval函數

setInterval(code,millisec,lang) 

我使用了這樣的:

var counter = 1; 
window.setInterval(function() {}, 1000 * ++counter); 

但是當第一次設定的定時(第二個參數)時,不改變,並且像以下代碼:

window.setInterval(function() {}, 1000); 

請寫出正確的代碼改變計時器

+0

什麼是'millisec'?一個變量? – pimvdb

+0

user667429,請澄清你的問題。你想要什麼? –

+0

這是計時器的window.setInterval – user667429

回答

0

使用window.setTimeout代替。

var delay = 1000; 
function myTimer() { 
    // do whatever 

    window.setTimeout(myTimer, delay); 
} 

window.setTimeout(myTimer, delay); 

您可以在函數的主體中操縱delay

0

你的問題是,JavaScript首先執行'1000 * ++計數器'一次,然後不更新時間間隔。
您應該嘗試使用超時代替:https://developer.mozilla.org/en/DOM/window.setTimeout
並且每次調用超時函數時都會用新值創建一個新的超時值。

+0

你提出什麼改變我的代碼? – user667429

+0

其實我會用完全相同的代碼@Marko Dumic給你... – revers

0

聽起來像你以後是不是在一個循環setInterval而是setTimeout

var counter = 1; 
for (var i = 1; i <= 3; i++) { 
    window.setTimeout(function() { 
     alert("#" + counter); 
     counter++; 
    }, i * 1000); 
} 

這將執行三個不同的「計時器」一前一後。
現場測試案例:http://jsfiddle.net/86DRd/