2013-10-21 51 views
0

看我的例子。腳本應該將變量設置爲零,然後在每秒鐘加1。相反,價值每秒翻倍。任何人有一個想法出了什麼問題?Javascript計數不工作:加倍而不是加起來

http://jsfiddle.net/kdKyz/

<script> 
function count_it() 
    { 
    window.counts = window.counts+1; 
    $('.result').html(window.counts); 
    window.setInterval(count_it, 1000); 
    } 
$('document').ready(function(){ 
    window.counts = 0; 
    count_it();  
}); 
</script> 
+0

我曾經使用類似的代碼來崩潰瀏覽器。 – cwallenpoole

回答

3

count_it()保持主叫setInterval()與本身作爲參數,並因此保持值加倍。您需要將ready()中的count_it()替換爲window.setInterval(count_it, 1000),並從count_it()中刪除window.setInterval(count_it, 1000)

+1

並且還從count_it()函數本身刪除同一行 –

+0

謝謝,這似乎解決了它:-)。只要我被允許,我會盡快接受你的回答! – dirk

1

setInterval()每1000毫秒調用一次傳入函數,直到您致電clearInterval()。您的選項是切換到setTimeout(),每調用一次setTimeout()或在ready函數中執行setInterval()調用一次(並從count_it中刪除呼叫),將只調用一次傳入功能。