如何删除eventhandler document.onkeydown?

时间:2013-07-16 09:30:20

标签: javascript jquery

我有这段代码,我需要以编程方式覆盖或从文档中删除keydown(例如使用简单的条件)

document.onkeydown = function (f) {
    myMethod();
};

知道该怎么做吗?

4 个答案:

答案 0 :(得分:17)

document.onkeydown = null

您可以使用jquery为您执行事件处理,您使用的方法不太常用,也不允许多个订阅者。

请查看此处的文档:

http://api.jquery.com/on/

示例:

$(document).on("keydown", function(){
    doStuff();
})
// unsubscribe all handlers
$(document).off("keydown");

答案 1 :(得分:7)

您可以使用以下命令将其删除:

document.onkeydown = null;

如果您希望能够恢复它,可以先将其保存到变量中:

var saved_keydown = document.onkeydown;
document.onkeydown = null;
//... later
document.onkeydown = saved_keydown;

答案 2 :(得分:2)

最简单的方法是将其设为null

document.onkeydown = null;

答案 3 :(得分:1)

你不能删除它,你只能附加一个什么都不做的新的,比如:

document.onkeydown = function () {};

使用jQuery,你可以做到:

$(document).on('keydown', myMethod);

并删除

$(document).off('keydown', myMethod);