解除特殊按键事件的绑定
我有一个关于 jQuery 按键事件的问题。我有以下(工作)代码:
$(document).bind('keypress', function(event) {
if ($('#myDiv').is(':visible')) {
if (event.which == 102) {
// ...do something...
}
}
else {
if (event.which == 102) {
return;
}
}
});
我总是“解除绑定”该事件,并在其“上方”绑定另一个事件。我知道我可以使用 .unbind('keypress')
解除绑定,但我收到了更多按键事件,当我使用 $(document).unbind('keypress')
解除绑定时代码> 我所有的事件都丢失了。
我可以做类似“keypress.102”的事情来仅解除绑定这个特定的“键”吗?或者如何做到这一点?
I've got a question regarding jQuery keypress events. I've got the following (working) code:
$(document).bind('keypress', function(event) {
if ($('#myDiv').is(':visible')) {
if (event.which == 102) {
// ...do something...
}
}
else {
if (event.which == 102) {
return;
}
}
});
I always "unbind" the event with binding another "over" it. I know that I can unbind it with .unbind('keypress')
but I got more keypress events and when i unbind this with $(document).unbind('keypress')
all my events get lost.
Can I do something like "keypress.102" to only unbind this particular "key" or how can this be done?!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你走在正确的轨道上。这称为 命名空间事件,即使用.< 标记特定绑定。 /code> (在您的情况下为“keypress.102”)。
例如:
您可以稍后取消绑定,而不会影响其他绑定的按键事件:
You were on the right track. That's called namespaced events, i.e. labelling specific bindings using
<event_name>.<namespace>
(in your case, "keypress.102").For example:
you can later unbind that without affecting other bound keypress events:
使用命名空间事件。
http://docs.jquery.com/Namespaced_Events
Use a namespaced event.
http://docs.jquery.com/Namespaced_Events