2013-06-22 68 views
1

我被正式卡住了。我似乎無法讓stopTimer()函數正常工作。任何幫助將不勝感激。謝謝!是的,另一個clearInterval問題

http://jsfiddle.net/4Efbd/1/

var counter; 

function stopTimer() { 
    window.clearInterval(counter); 
    $('#queryTimer').html(''); 
} 

function startTimer() { 
    var count = 60; 
    var counter = setInterval(function() { 
     count = count - 1; 
     if (count <= 0) { 
      window.clearInterval(counter); 
      return; 
     } 

     $('#queryTimer').html('Requery in:' + count + ' Seconds.'); 

    }, 1000); 
} 
$('#start').click(function() { 
    startTimer(); 
}); 
$('#stop').click(function() { 
    stopTimer(); 
}); 
+0

您正在'startTimer'範圍內重新定義'counter',以至於在調用'clearInterval'時它是未定義的。 – fjdumont

回答

5
var counter = setInterval(function() { 

,說: 「創建一個新的變量counter」。這意味着現有變量永遠不會被更改,因此clearInterval沒有正確的標識符來清除它。您想使用現有的變量:

counter = setInterval(function() { 
+4

這個變種花了我4個小時的生命。太感謝了。 – JLF