事件.click()开启和关闭

时间:2016-08-11 22:01:31

标签: javascript jquery

我有几次点击事件:

 t.string   :confirmation_token
 t.datetime :confirmed_at
 t.datetime :confirmation_sent_at

在我的应用程序的不同部分,我想关闭点击,然后再次打开它们:

我可以关闭调用此功能的点击:

$(function () {
    $('#button1').click(function () {
        //do samething...
    });

    $('#button2').click(function () {
        //do samething...
    });
    .....
});

现在我无法恢复点击功能。我试过像

这样的东西
function keysLock() {
    $('#button1').off('click');
};

(和许多类似的东西)但它不起作用。

2 个答案:

答案 0 :(得分:3)

... .on() ... .off()所以是的

分配点击自定义功能,如:

function doThisStuffOnClick () {
  // do someshitng
}

而不是使用他.on()方法:

$("#button1").on("click", doThisStuffOnClick);

而不是将其关闭:

$("#button1").off("click");

再次将其重新打开

$("#button1").on("click", doThisStuffOnClick);

<小时/> 请在此处阅读更多内容:.off()jQuery Docs

答案 1 :(得分:3)

只是根据您的评论添加替代解决方案,您可以使用变量来启用/禁用事件,然后您不必删除处理程序,如下所示:

$(function () {
  var someSpecificCondition = false;

  function doThisStuffOnClick () {
    if (someSpecificCondition) {
      return;
    }
    // do something
  }

  $('#button1, #button2').click(doThisStuffOnClick);    
});