2012-09-24 83 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

嘿,谢谢!我尝试了一段时间,没有工作。 –