【问题标题】:Mousetrap.bind is not working when field is in focus?当字段处于焦点时,Mousetrap.bind 不起作用?
【发布时间】:2014-01-09 07:14:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery jquery-ui keyboard-shortcuts mousetrap


    【解决方案1】:

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

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

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

    【讨论】:

    • 从 v1.5.0 开始,您需要使 Mousetrap.prototype.stopCallback = { ... }
    • 我有一个使用 Mousetrap.stopCallback 的旧脚本。谢谢!添加原型解决了我的问题@jedierikb
    【解决方案2】:

    如果您使用输入或文本区域或选择元素,则必须定义捕鼠器类:

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-08
      • 2014-02-26
      • 1970-01-01
      • 2014-04-21
      • 2015-03-30
      • 2019-02-08
      • 2013-07-16
      • 1970-01-01
      • 2017-10-04
      相关资源
      最近更新 更多