Mal*_*ist 10 javascript jquery javascript-events
我有一个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);
}
});
Run Code Online (Sandbox Code Playgroud)
我想在_dismissModal
调用之后删除这个keydown事件处理程序.如何在不删除所有keydown事件处理程序的情况下执行此操作?
您可以使用jquery off()方法。您还可以将keydown逻辑放入一个单独的函数中,以便只能在off方法中定位该keydown动作。
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);
Run Code Online (Sandbox Code Playgroud)
使用.off()删除事件处理程序.
$(document).on("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);
$(this).off("keydown");
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2389 次 |
最近记录: |