2

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

我的代码:

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

这工作正常。但是,如果任何输入处于焦点,则击键默认为浏览器原始(在本例中为查找)。如果我在输入框外单击,jquery.hotkeys 会调用预期的函数。

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

4

2 回答 2

1

你可以试一试:

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

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

于 2017-04-20T14:17:02.683 回答
0

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

如果用户专注于输入元素或任何具有 contenteditable="true" 的元素,则不会跟踪热键,除非您将热键直接绑定到该元素。这有助于避免与正常用户键入的冲突。如果您不想要这个,您可以更改以下布尔值以适应:

jQuery.hotkeys.options.filterInputAcceptingElements jQuery.hotkeys.options.filterContentEditable jQuery.hotkeys.options.filterTextInputs(已弃用,将在以后的版本中删除)

于 2017-04-20T13:56:09.750 回答