【问题标题】:Unbinding a JQuery hotkey inside the handler function在处理程序函数中取消绑定 JQuery 热键
【发布时间】:2011-11-07 07:40:07
【问题描述】:

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

例如:

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

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

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

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

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

这很好用——我需要在代码中的几个点绑定和取消绑定“空格”,这样就成功了。但是现在我也一直在绑定其他按键,发现这个调用(毫不奇怪)取消了所有按键的所有按键绑定。

那么我怎样才能取消绑定特定按键的部分或全部事件,无论是使用热键插件还是不使用它?

【问题讨论】:

    标签: jquery unbind hotkeys


    【解决方案1】:

    你需要使用命名空间。

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

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 2010-10-05
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多