4

我正在使用jquery.hotkeys.jskeydown编写一个具有两种键盘模式的程序,当取消绑定所有事件时,我看到一些减速和闪烁。有一个更好的方法吗?

function bindAll() {
    //bind all keystroke events
    $(document).bind('keydown','a', function(evt) {
    //...
    }
    $(document).bind('keydown','b', function(evt) {
    //...
    }
    //etc...
}

function unbindAll() {
     $(document).unbind('keydown');
     return true;
} //end unbinding all keystrokes
4

1 回答 1

6

jQuery 为您提供了为事件创建名称空间的可能性。看起来像:

$(document).bind('keydown.mySpace', function(evt) {
});
$(document).bind('keyup.mySpace', function(evt) {
});

// etc.

您可以.unbind()将添加到命名空间的所有事件都像这样:

$(document).unbind('.mySpace');

我不知道您提到的插件,但您应该查看文档甚至更好的源代码。如果设计得很好,您应该能够为此目的使用 jQuery 事件命名空间。

于 2011-02-15T17:34:53.943 回答