16

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

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

知道怎么做吗?

4

4 回答 4

27
document.onkeydown = null

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

在此处查看文档:

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

例子:

$(document).on("keydown", function(){
    doStuff();
})
// unsubscribe all handlers
$(document).off("keydown");
于 2013-07-16T09:31:49.873 回答
8

您可以使用以下方法将其删除:

document.onkeydown = null;

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

var saved_keydown = document.onkeydown;
document.onkeydown = null;
//... later
document.onkeydown = saved_keydown;
于 2013-07-16T09:33:05.297 回答
2

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

document.onkeydown = null;
于 2013-07-16T09:32:47.150 回答
1

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

document.onkeydown = function () {};

使用 jQuery,您可以:

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

并删除

$(document).off('keydown', myMethod);
于 2013-07-16T09:32:19.700 回答