我有setInterval
定期调用的函数。是否可以在点击时禁用该功能,不用取消clearInterval
的间隔?
所以说我有一个功能:
function disable(){
alert("hello");
}
并且在这样的设定间隔中调用它:
window.setInterval(function () {
disable();
},1000);
我可以阻止disable
功能在点击时运行吗?
$("#foo").click(function () {
//disable the disable function
});
答案 0 :(得分:4)
捕获setInterval
的返回值(这是间隔ID)。将其作为参数传递给clearInterval
。
答案 1 :(得分:0)
试
var timer= window.setInterval(function () {
disable();
},1000);
$("#foo").click(function(){
clearInterval(timer);
});
答案 2 :(得分:0)
试试这个
var timer;
timer = window.setInterval(function () {
disable();
},1000);
$("#foo").click(function () {
//disable the disable function
clearInterval(timer);
});
由于
答案 3 :(得分:0)
不禁用间隔!
这是解决此问题的错误方法,您应该清除间隔,然后在您想要恢复执行该功能时恢复它。
如果确实希望在不清除时间间隔的情况下执行此操作,则需要完全使用if
语句。你不能“禁用”功能,你只需要有条件地选择不执行功能的身体。
function myFunc() {
if (myFunc.disabled) return;
...
}
myFunc.disabled = false;
setInterval(myFunc, 1000);
// to disable the function:
myFunc.disabled = true;
答案 4 :(得分:0)
您也可以覆盖该功能,从而禁用它:
$(document).ready(function() {
$("#foo").click(function () {
window["disable"] = function() {
//aborted
};
});
});
Live test case。 (观看控制台)