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的答案。