我有一个附加到我的文档的keydown
事件处理程序,因此我可以在任何地方观看keydown
事件。但是,在满足条件后,我希望能够仅删除该处理程序。我怎样才能做到这一点?
这是我当前的处理程序:
$(document).keydown(function(event){
console.log(event);
var tag = event.target.tagName.toLowerCase();
if(event.which = 27 && tag != 'input' && tag != 'textarea'){ //escape has been pressed
_dismissModal(modal_id);
}
});
我想在调用keydown
后删除此_dismissModal
事件处理程序。如何在不删除所有keydown
事件处理程序的情况下执行此操作? 最佳答案
您可以使用jquery off()方法。您还可以将keydown逻辑放入一个单独的函数中,以便只能在off方法中定位该keydown Action 。
var mykeydownfunction= function(){
console.log(event);
var tag = event.target.tagName.toLowerCase();
if(event.which = 27 && tag != 'input' && tag != 'textarea'){ //escape has been pressed
_dismissModal(modal_id);
$(this).off('keydown', mykeydownfunction);// $(this) is the document
}
}
$(document).on('keydown', mykeydownfunction);
关于javascript - 在事件处理程序内部删除jQuery事件处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21415897/