删除特定的事件处理程序

Remove specific event handler

正在附加事件处理程序:

$(document).on('keypress', function(event){
  #1
});

这将删除所有 "keypress" 个事件处理程序:

$(document).off('keypress');

我只想从上面的代码中删除#1

不使用名称空间可以做到吗?我不想创建随机字符串用作命名空间:(

将原始处理程序传递给 off。确保您传递的是原始函数,而不是看起来相同的新匿名函数。

这意味着您需要存储它。

var handler = function(event){
  #1
};

$(document).on('keypress', handler);

$(document).off('keypress', handler);