Javascript 如何删除eventhandler文档.onkeydown?

Javascript 如何删除eventhandler文档.onkeydown?,javascript,jquery,Javascript,Jquery,如果我有这段代码,我需要以编程方式重写或从文档中删除onkeydown(例如使用简单条件) 知道怎么做吗 document.onkeydown = null 您可以使用jquery为您处理事件,您使用的方法不太常用,并且不允许多个订阅者 请查看此处的文档: 例如: $(document).on("keydown", function(){ doStuff(); }) // unsubscribe all handlers $(document).off("keydown"); 您不

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

知道怎么做吗

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

请查看此处的文档:

例如:

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

您不能删除它,只能附加一个不起任何作用的新文件,如:

document.onkeydown = function () {};
使用jQuery,您可以执行以下操作:

$(document).on('keydown', myMethod);
以及删除

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

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

document.onkeydown = null;

您可以通过以下操作将其删除:

document.onkeydown = null;
如果希望能够还原它,可以先将其保存到变量中:

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

你能发布一个jquery版本吗?
文档。onkeydown
确实很旧,但它是标准化的,可以在所有主要浏览器中使用,包括IE 6-8,并且将在未来的浏览器中继续使用。为什么你认为使用它是不好的做法?OP不必使用jQuery,他们可以使用公认的标准
文档。addEventListener('keydown',function(){…})
@TimDown你是对的,我只是觉得它不太常用,我会修改我的answer@MrMisterMan嗯,那实际上是个坏习惯,因为那时你必须手动管理跨浏览器的差异。好吧,这个答案有点晚了57秒,@Willem D'haeseljeri将使用
document.onkeydown=null
无需保留对不必要的空函数的引用空函数很棒!
var saved_keydown = document.onkeydown;
document.onkeydown = null;
//... later
document.onkeydown = saved_keydown;