2012-12-05 98 views
2

我有1個按鈕切換和關閉: 按鈕 - > onrepeat =真 鍵關機 - > onrepeat =假clearInterval不停止setInterval的

如果onrepeat爲真,則setInterval來逐步揭開序幕,它做得很好。如果onrepeat是錯誤的,我希望它清除間隔。

我清楚區間不停止的時間間隔,它只是不斷去:

function checkRepeat() { 

     var int = setInterval(repeat, 6000); 

     if (onrepeat === false) { 
      $("#repeat_toggle").attr("class", "repeat_button"); 

      repeat(); 
      int; 

      onrepeat = true; 

     } 

     else { 

      clearInterval(int); 
      $("#repeat_toggle").attr("class", "repeat_off_button"); 
      onrepeat = false; 

     } 


    } 

任何想法有什麼不對?

回答

3

int是作用域的功能。它在每次撥打電話時被重置checkRepeat

您需要將其範圍限定在函數上方的某個級別。

+0

如果我把它限制出來,即使函數沒有被調用,它也會執行,不是嗎? – user1783490

+1

@ user1783490 - 把'var int'放在外面,而不是'int = setInterval(重複,6000);'(留在裏面)。 – Quentin

+0

善良,我不知道我怎麼沒有看到,非常感謝! – user1783490