Mik*_*lik 12 jquery keypress unbind
我有一个关于jQuery按键事件的问题.我有以下(工作)代码:
$(document).bind('keypress', function(event) {
if ($('#myDiv').is(':visible')) {
if (event.which == 102) {
// ...do something...
}
}
else {
if (event.which == 102) {
return;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我总是"绑定"事件,绑定另一个"结束"它.我知道我可以解开它,.unbind('keypress')但是我得到了更多的按键事件,当我解开这个时,我的$(document).unbind('keypress')所有事件都会丢失.
我可以做一些像"keypress.102"这样的东西来解开这个特定的"密钥",或者怎么办呢?!
Sha*_*hin 29
你走在正确的轨道上.这称为命名空间事件,即使用<event_name>.<namespace>(在您的情况下,"keypress.102")标记特定绑定.
例如:
$(document).bind("keypress.key102", function(event) {
if ($('#myDiv').is(':visible')) {
if (event.which == 102) {
// ...do something...
}
}
else {
if (event.which == 102) {
return;
}
}
});
Run Code Online (Sandbox Code Playgroud)
你可以在不影响其他绑定的按键事件的情况下取消绑定:
$(document).unbind("keypress.key102");
Run Code Online (Sandbox Code Playgroud)