Javascript 如何在jQuery中禁用(完全)和启用任何鼠标侦听器?

Javascript 如何在jQuery中禁用(完全)和启用任何鼠标侦听器?,javascript,jquery,event-handling,jquery-events,mousewheel,Javascript,Jquery,Event Handling,Jquery Events,Mousewheel,我有一个奇怪的问题:如何在单击按钮时禁用所有鼠标事件(鼠标滚轮,单击,悬停等),并在超时后(例如1s)再次启用它们 首先,我尝试了unbind/bind函数,但Apple Magic mouse上的滚动事件有一个奇怪的bug。然后我想到了这个: $("* ... or some selector").on("scroll click ...", function(){ return false; }); 这不是很漂亮,但这是工作。问题是我不知道如何在

我有一个奇怪的问题:如何在单击按钮时禁用所有鼠标事件(
鼠标滚轮
单击
悬停
等),并在超时后(例如1s)再次启用它们

首先,我尝试了unbind/bind函数,但Apple Magic mouse上的滚动事件有一个奇怪的bug。然后我想到了这个:

$("* ... or some selector").on("scroll click ...", function(){
  return false;
});
这不是很漂亮,但这是工作。问题是我不知道如何在一秒钟后重新启用事件,例如


如果您有任何想法,我们将不胜感激。

您目前可能正在使用。如果您确实命名了函数,则可以在以后重新初始化事件侦听器:

var myMethod = function () {
    // does something
}

$('my selector').on('my event', myMethod)

至于一秒钟:

这不是一个解决方案…鼠标事件仍然会触发。如果事件处理程序与
on()绑定,则可以使用
off()
删除它们。
我也尝试过,但不起作用…与unbind/bind方法的工作原理相同。有没有一种方法可以“重新启动”事件列表?没有,您必须再次绑定它们,使用引用的命名函数等可以更容易地完成,但没有神奇的方法可以做到这一点。