我试图在按下特定键时让事件继续进行。
我想听的键是 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/