15

我正在使用 Mousetrap 创建键盘快捷键,当任何字段处于焦点时它不起作用。这是查看演示的链接http://davidwalsh.name/keyboard-shortcuts我从中获取代码。当我打电话时

Mousetrap.bind('ctrl+m', function () {
    var button = $('[data-action="next-page"]');
    if (button.length) {
        button[0].click()
    }
});

像这样它不起作用,当鼠标指向文本框或下拉列表等时。任何人都可以为我提供解决方案。提前致谢。

4

2 回答 2

28

默认情况下,当焦点位于输入字段、下拉列表等时,mousetrap 会禁用快捷方式。如果您的问题只有一个字段,请将类包含mousetrap在其中。如果要禁用所有方案,请尝试以下代码

Mousetrap.stopCallback = function () {
     return false;
}

这将覆盖初始行为并允许在屏幕的任何字段中使用快捷方式。

于 2014-01-13T18:21:15.210 回答
2

如果您使用 input 或 textarea 或选择元素,则必须定义 mousetrap 类:

<textarea name="message" class="mousetrap"></textarea>

请参阅https://craig.is/killing/mice官方文档中的“文本字段”部分

于 2016-11-26T23:10:14.227 回答