当字段处于焦点时,Mousetrap.bind无法正常工作?

时间:2014-01-09 07:14:43

标签: jquery jquery-ui keyboard-shortcuts mousetrap

我正在使用Mousetrap创建键盘快捷键,当焦点中的任何字段时它无法正常工作。这是我获取代码的视图演示http://davidwalsh.name/keyboard-shortcuts的链接。当我用来打电话

Mousetrap.bind('ctrl+m', function () {
    var button = $('[data-action="next-page"]');
    if (button.length) {
        button[0].click()
    }
});
像这样它不起作用,当鼠标指向文本框或下拉等时。可以为我提供解决方案。提前谢谢。

2 个答案:

答案 0 :(得分:21)

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

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

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

答案 1 :(得分:0)

如果您正在使用input或textarea或select元素,则必须定义mousetrap类:

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

请参阅https://craig.is/killing/mice

上的官方文档中的“文本字段”部分