javascript - 浏览器监听多个按键按下js

标签 javascript jquery html keyboard keypress

我试图在按下特定键时让事件继续进行。

我想听的键是 bltzr,在我的浏览器上我只能按 bltz 而不是最后一个 r

我在 Windows 上试过这个,我在 OSX 上试过,但我仍然听不到所有按键的声音。但是错误是不同的(不能告诉你更多关于它的信息,因为它不是我的设备)

这是我用来监听按键按下的代码:

var log = $('#log')[0],
    pressedKeys = [];

$(document.body).keydown(function (evt) {
    var li = pressedKeys[evt.keyCode];
    if (!li) {
        li = log.appendChild(document.createElement('li'));
        pressedKeys[evt.keyCode] = li;
    }
    $(li).text('Down: ' + evt.keyCode);
    $(li).removeClass('key-up');
});

$(document.body).keyup(function (evt) {
    var li = pressedKeys[evt.keyCode];
    if (!li) {
       li = log.appendChild(document.createElement('li'));
    }
    $(li).text('Up: ' + evt.keyCode);
    $(li).addClass('key-up');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="log">
    <li>List of keys:</li>
</ul>

为什么我不能同时按下这些特定的键?

有没有办法同时收听所有这些?

最佳答案

您需要寻找其他方法。在大多数(便宜的)键盘上,同时可以按下和按住的键数有最大限制。此最大值取决于键盘硬件、协议(protocol)和连接器类型。

具体可以通过了解n-key rollover (NKRO)来了解。与矩阵(通常是 2 键翻转)键盘。最好的键盘将通过 PS/2 连接器支持 NKRO(USB 受限)- related answer .

根据设备的不同,触摸似乎也有限制 - basic (1-11) & large devices (50) .

关于javascript - 浏览器监听多个按键按下js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42724462/

相关文章:

javascript - 如何求和列表项的宽度顶部等于 0px

javascript - 无法获取 jQuery.parseJSON() 值

javascript - 如何给 HTML 标签编号?

javascript - 通过单击按钮切换 BODY 元素的背景颜色(CSS 类)时如何更改 H2 颜色?

jquery - 无法在标签标记中循环 div 并获取其第一个子级的文本内容

HTML 文本框在命令执行时消失

javascript - 在 MVC 4 部署的项目中出现 404 错误

javascript - 深 $watch 与 $watchCollection : $var behavior

javascript - 如果函数花费的时间超过 X 毫秒,则显示加载微调器

jquery - 表格溢出固定水平滚动条