myInterval = setInterval(function(){
MyFunction();
},50);
function MyFunction()
{
//Can I call clearInterval(myInterval); in here?
}
间隔不会停止(不会清除),如果我上面编码的很好,那么它将帮助我在其他地方寻找引起问题的原因。谢谢。
编辑:让我们假设它在调用clearInterval之前完成了一些间隔,这消除了对setTimeout的需要。
最佳答案
只要您具有保存的interval
变量的作用域,就可以从任何地方取消它。
在“子”范围内:
var myInterval = setInterval(function(){
clearInterval(myInterval);
},50);
在“同级”范围内:
var myInterval = setInterval(function(){
foo();
},50);
var foo = function () {
clearInterval(myInterval);
};
如果间隔超出范围,您甚至可以通过间隔:
var someScope = function () {
var myInterval = setInterval(function(){
foo(myInterval);
},50);
};
var foo = function (myInterval) {
clearInterval(myInterval);
};