输入聚焦时jQuery.HotKeys键绑定

时间:2017-04-20 13:51:41

标签: javascript jquery dom jquery-hotkeys

我正在使用jquery.hotkeys来实现键盘快捷键。

我的代码:

$(document).bind('keydown', 'Ctrl+f', function () {
        $('#myid').focus();
        return false;
    });

这很好用。但是如果任何输入是焦点,则击键默认为浏览器原始(在本例中为find)。如果我在输入框外面单击,则由jquery.hotkeys调用预期的函数。

如果我想获得统一的行为,无论输入是否集中,我该怎么办?

2 个答案:

答案 0 :(得分:0)

参考文档:https://github.com/jeresig/jquery.hotkeys#hotkeys-within-inputs

  

如果用户在输入元素中聚焦,则不会跟踪热键   或任何具有contenteditable =“true”的元素,除非你绑定   热键直接到元素。这有助于避免与之发生冲突   普通用户打字。如果你不想这样,你可以改变   适合以下的布尔人:

     

jQuery.hotkeys.options.filterInputAcceptingElements   jQuery.hotkeys.options.filterContentEditable   jQuery.hotkeys.options.filterTextInputs(不建议使用,将被删除   在更高版本中)

答案 1 :(得分:0)

你可以试一试:

$(document).bind('keydown', function(e) {
    if (e.ctrlKey && e.which == 70) {
        $('#myid').focus();
        return false;
    }
});

问题是,它没有使用插件。因此,即使它对您有效,也请不要将答案标记为答案,因为它没有回答最初的问题恕我直言。