解除处理程序函数内部的JQuery热键

时间:2011-08-31 03:55:43

标签: jquery unbind hotkeys

我正在使用hotkeys plugin的JQuery并且无法解除事件的绑定。具体来说,我试图解除绑定到该按键的方法中的按键事件。

例如:

$(document).bind('keydown', 'space', doStuff)

function doStuff() {
    alert("Doing stuff");
    $(document).unbind('keydown', 'space');
}

我想我可能误解了unbind调用API - 我是否需要提供第三个参数?在一些文档中,似乎我必须提供我最初提供的函数处理程序作为此参数绑定 - 但该函数处理程序是我调用unbind的函数,所以我没有处理它?还是我?

请注意,在今天之前,我正在使用:

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

这很好用 - 我需要在代码中的几个点绑定和取消绑定“空格”,这就行了。但是现在我也一直在绑定其他按键,并且发现这个调用(毫不奇怪)解除了对所有按键的所有按键的限制。

那么如何使用热键插件解压缩特定按键的部分或全部事件,或者不使用它?

1 个答案:

答案 0 :(得分:1)

您需要使用名称空间。

$(document).bind('keydown.space', 'space', doStuff)

function doStuff() {
    alert("Doing stuff");
    $(document).unbind('keydown.space', 'space');
}