2011-02-15 66 views
4

我正在用兩種鍵盤模式使用jquery.hotkeys.js編寫一個程序,我看到一些放緩並在解除綁定所有keydown事件時閃爍。有一個更好的方法嗎?jQuery解綁大量事件

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 

回答

5

jQuery的爲您提供了創建活動命名空間的可能性。這看起來像:

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

// etc. 

您可以.unbind()所有被添加到命名空間,然後像這樣的事件:

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

我不知道你提到的插件,但是你應該有一個查看文檔或更好的來源。如果它設計得很好,你應該能夠使用jQuery事件名稱空間來達到這個目的。

+0

優秀小費,謝謝! – 2012-04-18 19:59:35