2011-04-30 148 views
0

我想要做的是使滑出面板,但這裏是我遇到的問題的簡單示例。setInterval()不會停止,如果它被調用兩次

myCount = document.getElementById("counter") 
myCount.onclick = startCount; 
count = 0; 

function startCount() { 
    timer = setInterval("countToTen()", 200); 
} 

function countToTen() { 

    count++; 
    myCount.innerHTML = count; 

    if (count >= 10) { 
     clearInterval(timer); 
    } 
} 

如果您點擊一次,它會很好用。如果你雙擊(我們不能相信用戶只在他們應該點擊的時候點擊),那麼櫃檯會永遠持續下去。我猜想兩個計時器已經完成了,但是Firebug正在顯示計時器始終具有相同的ID。那麼當setInterval被調用兩次時,你如何正確使用clearInterval?

回答

6
var timer; 
function startCount() { 
    if (!timer) { 
     timer = setInterval(countToTen, 200); 
    } 
} 
+1

啊好吧,那麼你設置計時器爲false,當你做clearInterval並準備好再次調用。我認爲計時器比這更復雜,但顯然它非常簡單。謝謝! – pennydrops 2011-04-30 10:37:32