jQuery 的键盘快捷键

IT技术 javascript jquery keyboard-shortcuts
2021-02-03 16:09:57

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

(顺便说一句,所有字母的字符映射在哪里?)

6个回答

由于最初提出这个问题,John Resig(jQuery 的主要作者)已经 fork 并改进了 js-hotkeys 项目。他的版本可在以下位置获得:

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

你如何防止默认冒泡到浏览器?从我看到的自述文件中没有提到任何内容。
2021-03-17 16:09:57
这个答案确实提供了有用的链接。你也能回答原来的问题吗?例如“如果有人按下字母 g,我如何连接一个事件来触发”?jquery.hotkeys module有一些文档,如果您已经知道自己在做什么,我敢肯定这些文档很棒……但是对于我们这些试图一起破解某些东西的人来说,原始问题的答案会很棒。
2021-03-22 16:09:57
它支持meta密钥,在js-hotkeys:) 中不支持的东西
2021-03-24 16:09:57
我必须说,它非常适合组合键(尤其是那些特殊的键,如 shift、ctrl、alt 等),但我在基本映射 0-9 和 az 方面遇到了麻烦)。
2021-04-04 16:09:57
他有一个 Nuget 包,所以我选择了这个。
2021-04-08 16:09:57

jQuery 热键怎么

jQuery Hotkeys 可让您在代码中的任何位置监视键盘事件,几乎支持任何组合键。

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

$(document).bind('keydown', 'ctrl+c', f);
@Gurnard 我们可能不应该阻止用户默认设置,除非在极少数情况下它已提前通知用户并且他们期望 Web 应用程序中出现该行为(并且可能为他们提供更改它的设置)。 . 否则它非常烦人。示例 1:在 Stack Exchange 上撰写帖子时,而不是隐藏浏览器,Cmd H## Heading ##出现在文本字段中。例2这个问题。 示例 3此问答
2021-03-13 16:09:57
开箱即用它不会阻止浏览器默认值。例如,Ctrl+n 将在浏览器中打开一个新选项卡。无法访问事件对象,因此不确定如何使用此方法来防止默认。
2021-03-30 16:09:57
@Mentalist 我很欣赏 UX 评论,但它不适用于我们目前的情况。我只是希望能够在技术上做到这一点,架构和用户体验决策将是另一篇文章:-)
2021-03-30 16:09:57
哇...这可能是我用过的最简单的插件!
2021-04-04 16:09:57

我最近为此编写了一个独立的库。它不需要 jQuery,但是您可以将它与 jQuery 一起使用没有问题。它叫做捕鼠器。

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

这很好。我非常感谢对处理键序列的支持。
2021-03-20 16:09:57
我喜欢文档以及防止元素默认行为的方法。这个库应该在 NuGet 上。
2021-04-02 16:09:57
我正在使用 Moustrap 并发现它比 HotKeys 插件要好得多。非常推荐。@Crag 感谢您的出色工作。
2021-04-05 16:09:57
同意。这是优越的。当 textarea 对我有焦点时,jquery.hotkey 没有错误地触发,但这没有。此外,在以前的评论者提到的所有方式上都更好。
2021-04-08 16:09:57

那么有很多方法。但我猜你对高级实现感兴趣。几天前,我进行了相同的搜索,并找到了一个。

这里。

它非常适合从键盘捕获事件,您也会找到字符映射。好消息是......它是jQuery。检查同一页面上的演示并决定。

另一个图书馆在这里

只是为了清楚起见,它也可以在没有 jquery 的情况下完美运行。
2021-04-07 16:09:57
    <script type="text/javascript">
        $(document).ready(function(){
            $("#test").keypress(function(e){
                if (e.which == 103) 
                {
                    alert('g'); 
                };
            });
        });
    </script>

    <input type="text" id="test" />

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

大写 G = 71,小写为 103

这仅在您专注于文本字段时发生
2021-03-18 16:09:57
链接失效了:(
2021-03-18 16:09:57
用这个!if (e.which == 103 || e.keyCode == 103 || window.event.keyCode == 103)
2021-04-03 16:09:57