Javascript 单击()打开和关闭

Javascript 单击()打开和关闭,javascript,jquery,Javascript,Jquery,我用这种方式进行了几次点击活动: $(函数(){ $('#按钮1')。单击(函数(){ //做同样的事。。。 }); $('#按钮2')。单击(函数(){ //做同样的事。。。 }); ..... }); 在我的应用程序的不同部分,我希望关闭单击,然后再次打开它们: 我可以关闭调用此函数的单击: 功能键锁(){ $('按钮1')。关闭('单击'); }; 现在我无法恢复单击功能。我试过用类似的东西 $('#button1').on('click') (和许多类似的东西)但它不起作用。...

我用这种方式进行了几次点击活动:

$(函数(){
$('#按钮1')。单击(函数(){
//做同样的事。。。
});
$('#按钮2')。单击(函数(){
//做同样的事。。。
});
.....
});
在我的应用程序的不同部分,我希望关闭单击,然后再次打开它们:

我可以关闭调用此函数的单击:

功能键锁(){
$('按钮1')。关闭('单击');
};
现在我无法恢复单击功能。我试过用类似的东西

$('#button1').on('click')
(和许多类似的东西)但它不起作用。

..
.on()
.off()

aa设计一个单击自定义函数,如:

function doThisStuffOnClick () {
  // do someshitng
}
然后使用他
.on()
方法:

$("#button1").on("click", doThisStuffOnClick);
而不是关闭它:

$("#button1").off("click");
而不是再次打开它

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


阅读此处的更多信息:

仅需根据您的评论添加替代解决方案,您可以使用变量启用/禁用事件,而无需删除处理程序,类似于:

$(function () {
  var someSpecificCondition = false;

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

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

是的,
.off()
不会像轻按电灯开关一样将其关闭,它会移除处理器。如果绑定命名函数,则可以使用
$(“#button1”)重新绑定它们。单击(namedFunction)
,或者可以更新处理程序,使其具有一个关于当前是否处于活动状态的标志,然后在
keysLock()
中将该标志设置为false@pmahome-
。click()
未被弃用。这只是通往
.on()
的快捷方式-这不是问题所在。你应该提到名称空间,因为使用它们可能也是一个好主意。@IstvánUjj-Mészáros yep thx。不是现在。完全不需要
单击:fick
。让我们把这个留到以后再说。在我看来,当你使用
off
只是为了避免将来的问题时,这总是一个好主意,因为
off
将删除所有
click
处理程序,而不仅仅是带有
dothistuftonclick
@IstvánUjj-Mészaros你提到的越多,我就越同意you@mario (哇!)你显然做错了什么。难道你找不到一些通用的点击用例来将这些点击绑定到某个类选择器上吗?我的意思是,你的Q中的
//做同样的事情…
不能帮助我进一步帮你…好吧,编辑,因为我错过了它们是一样的。使用
off
和自定义类似乎有点过头了。我我认为OP在做什么的时候,如果不表现出更多的代码和洞察力,就不能得到比这两个更好的答案。我甚至认为这可能是一个XY问题。