单击时禁用功能

时间:2014-02-20 14:41:04

标签: javascript jquery

我有setInterval定期调用的函数。是否可以在点击时禁用该功能,不用取消clearInterval的间隔?

所以说我有一个功能:

function disable(){
    alert("hello");
}

并且在这样的设定间隔中调用它:

window.setInterval(function () {
    disable();
},1000);

我可以阻止disable功能在点击时运行吗?

$("#foo").click(function () {
//disable the disable function
});

5 个答案:

答案 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。 (观看控制台)