从JQUERY Keydown活动取消注册

use*_*801 4 html javascript jquery

我试图使用以下代码删除我创建的keydown事件:

$(document).keydown(function(e) {
    alert("Key Down");
});
Run Code Online (Sandbox Code Playgroud)

当我使用以下代码时:

$(document).off('keydown');
Run Code Online (Sandbox Code Playgroud)

它会引发以下错误:

Uncaught TypeError: Object [object Object] has no method 'off'
Run Code Online (Sandbox Code Playgroud)

有人能指出我从keydown事件中取消注册的正确方法吗?

Mat*_*all 13

取消绑定所有keydown处理程序document:

$(document).unbind('keydown');
Run Code Online (Sandbox Code Playgroud)

或者确保您只取消绑定该特定处理程序:

function myHandler(e) {
    alert("Key Down");
}

$(document).keydown(myHandler);
// later
$(document).unbind('keydown', myHandler);
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/unbind

  • 但是我们知道OP没有使用支持`.off()`的jQuery版本. (5认同)
  • 是的,这就是我建议的原因. (3认同)