我想基于特定函数的成功触发一个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);
});发布于 2015-08-12 20:26:45
您始终可以在全局范围内设置它,例如
window.myTimer = setInterval(function(){ setColor() }, 300);
$("#stop").click(function(){
clearInterval(window.myTimer);
});发布于 2015-08-12 20:35:17
“窗口”是不必要的,我的观点是使用它是不好的做法。只要去掉"var“,作用域就会自动变成全局的。
http://www.w3schools.com/js/js_scope.asp
发布于 2015-08-12 20:27:23
这是一个范围问题。
请参阅What is the scope of variables in JavaScript?
基本上,将myVar声明到两种情况下都可用的作用域中。例如:
function myCountComplete(){
//do something
count++;
if(count > 10){
window.myVar = setInterval(function(){ setColor() }, 300);
}
}
$("#stop").click(function(){
clearInterval(window.myVar);
});https://stackoverflow.com/questions/31965163
复制相似问题