Javascript 从另一个函数中清除间隔

Javascript 从另一个函数中清除间隔,javascript,jquery,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.background

我想基于特定函数的成功触发一个
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";
}
单击按钮时,如何清除
myVar
间隔

$("#stop").click(function(){
    clearInterval(myVar);
});

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

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

$("#stop").click(function(){
    clearInterval(window.myTimer);
});
这是一个范围问题。

基本上, 将
myVar
声明到两种情况下都可用的范围中。例如:

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

$("#stop").click(function(){
    clearInterval(window.myVar);
});
“窗口”是没有必要的,我的意见是,使用它是不好的做法。 只需删除“var”,范围就会自动变为全局范围


myVar
作为全局变量。ie在函数之外声明它(
var myVar
),谢谢。是的,我更喜欢@andy的答案。