从另一个功能清除间隔

Bek*_*kki 3 javascript jquery

我想setInterval()基于特定功能的成功触发一个.

function myCountComplete(){
   //do something
   count++;
   if(count > 10){
      var myVar = setInterval(function(){ setColor() }, 300);
   }
}

function setColor() {
    var x = document.body;
    x.style.backgroundColor = x.style.backgroundColor == "yellow" ? "pink" : "yellow";
}
Run Code Online (Sandbox Code Playgroud)

如何myVar在单击按钮时清除间隔?

$("#stop").click(function(){
    clearInterval(myVar);
});
Run Code Online (Sandbox Code Playgroud)

and*_*rrs 8

您始终可以在全局范围内设置它,即

window.myTimer = setInterval(function(){ setColor() }, 300);

$("#stop").click(function(){
    clearInterval(window.myTimer);
});
Run Code Online (Sandbox Code Playgroud)


小智 5

“窗口”不是必需的,我认为使用它是不好的做法。只需删除“var”,作用域就会自动变为全局。

http://www.w3schools.com/js/js_scope.asp

  • 谢谢。是的,我更喜欢@andy的回答。 (2认同)