jQuery отменяет привязку большого количества событий - PullRequest
4 голосов
/ 15 февраля 2011

Я пишу программу с двумя режимами клавиатуры, используя jquery.hotkeys.js . Я вижу некоторое замедление и мигание при отмене привязки всех событий нажатия клавиш.Есть ли лучший способ сделать это?

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

1 Ответ

5 голосов
/ 15 февраля 2011

jQuery предлагает вам возможность создать пространства имен для событий.Это выглядит так:

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

// etc.

Вы можете .unbind() все события, которые были добавлены в пространство имен, тогда так:

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

Я не знаю о плагине, который вы упомянули, но вы должны заглянуть в документы или даже лучше источник.Если он хорошо спроектирован, вы можете использовать для этого пространства имен событий jQuery.

...