2012-09-24 132 views
0

我正在玩「身份證」試圖讓自己舒適等。我知道jQuery有一個非常快速的解決方案,但我想知道如何通過js來完成。停止setInterval

 var startTimer = function init(){ 
       var n = 0; 
       var e = document.getElementById("output"); 
       var myTimer = setInterval (function() {e.innerHTML = n++;},100); 
       // clearInterval(myTimer); 
       if(myTimer === 10){ 
        clearInterval(myTimer); 
        return; 

       } 
      }     

      startTimer(); 
+1

什麼問題? – Travesty3

+0

我正要問同樣的問題 – NemoStein

+2

爲什麼你比較你的計時器的id和'10'? – Bergi

回答

6

你真的想要嗎?

function initTimer(){ 
    var n = 0; 
    var e = document.getElementById("output"); 
    var timerid = setInterval(function() { 
     e.innerHTML = n; 
     if (n < 10) // count until ten 
      n++; 
     else 
      clearInterval(timerid); // this happens somewhen later 
    }, 100); 
} 
+0

哇!非常感謝! 所以你將setInterval函數設置爲一個var,這樣你可以在後面清除它,而clearInterval(在else中);並且是在setInterval函數中用作參數的匿名函數? –

+0

關於設置/清除時間間隔,您可能會閱讀[那些](https://developer.mozilla.org/en-US/docs/DOM/window.setInterval)[引用](https://developer.mozilla.org/ EN-US /文檔/ DOM/window.clearInterval) – Bergi

2

你比較myTimer到10,你應該比較ñ代替:

if(n===10) ... 
+0

更改只是不會幫助 – Bergi

+0

嘿,謝謝!我嘗試了一段時間,沒有工作。 –