使用jQuery的键盘快捷键

184 javascript jquery keyboard-shortcuts

如果有人按下这封信,我该如何连接事件g

(所有字母BTW的字符映射在哪里?)

npa*_*pad 141

由于这个问题最初被问到,John Resig(jQuery的主要作者)已经分叉并改进了js-hotkeys项目.他的版本可在:

http://github.com/jeresig/jquery.hotkeys

  • 这是否支持Apple`命令`键? (9认同)
  • 它支持`meta`键,`js-hotkeys`中不支持:)谢谢 (6认同)

Ion*_*icu 84

jQuery热键呢?

jQuery Hotkeys让您可以在代码中的任何位置观看键盘事件,几乎可以支持任何组合键.

要绑定Ctrl+ c到函数(f),例如:

$(document).bind('keydown', 'ctrl+c', f);
Run Code Online (Sandbox Code Playgroud)

  • 哇...这可能是我用过的最简单的插件! (2认同)
  • @Mentalist我感谢UX注释,但是它不适用于我们当前的情况。我只是希望能够从技术上做到这一点,架构和UX决策将是另一篇文章:-) (2认同)

Cra*_*aig 43

我最近为此写了一个独立的库.它不需要jQuery,但你可以使用它与jQuery没问题.它叫做捕鼠器.

你可以在http://craig.is/killing/mice上查看

  • 这非常好.我非常感谢对键序列处理的支持. (4认同)
  • 我正在使用Moustrap,并发现它比HotKeys插件更好。非常推荐。@Crag感谢您的出色工作。 (2认同)

sim*_*rsh 24

那么有很多方法.但我猜你对高级实现很感兴趣.几天前,我在同一个搜索中,我发现了一个.

这里.

这对于从键盘捕获事件很有用,你也可以找到角色图.好消息是...它是jQuery.检查同一页面上的演示并确定.

这里有另一个图书馆.

  • 只是要说清楚,它也可以在没有jquery的情况下完美运行. (2认同)

hun*_*ter 15

    <script type="text/javascript">
        $(document).ready(function(){
            $("#test").keypress(function(e){
                if (e.which == 103) 
                {
                    alert('g'); 
                };
            });
        });
    </script>

    <input type="text" id="test" />
Run Code Online (Sandbox Code Playgroud)

这个站点说71 = g,但上面的jQuery代码却不这么认为

资本G = 71,小写是103

  • 用这个!if(e.which == 103 || e.keyCode == 103 || window.event.keyCode == 103) (8认同)

Mic*_*per 15

如果你只想要简单的快捷方式(例如1个字母g),你可以轻松地完成它而无需额外的插件:

$(document).keypress(function(e) {
  if(e.charCode == 103) {
    // Your Code
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 这在IE9中不起作用.在IE中,这样的东西有效:e = e || window.event; var keyCode = e.keyCode || e.which; (2认同)

Bra*_*bby 8

您也可以尝试使用shortKeys jQuery插件.用法示例:

$(document).shortkeys({
  'g': function () { alert('g'); }
});
Run Code Online (Sandbox Code Playgroud)