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