【问题标题】:browser listens multiple key down js浏览器监听多个按键 js
【发布时间】:2017-08-01 03:46:04
【问题描述】:

我正在尝试在按下特定键时触发事件。

我想听的键是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>

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

有没有办法同时听所有的?

【问题讨论】:

  • 为了获得带有 id 的 dom,不需要这个 var log = $('#log')[0],。只有 $('#log') 就足够了

标签: javascript jquery html keyboard keypress


【解决方案1】:

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

您可以通过了解 n-key rollover (NKRO) 与矩阵(通常是 2 键翻转)键盘来获取有关细节的信息。最好的键盘将通过 PS/2 连接器支持 NKRO(USB 受限)-related answer

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 2021-06-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 2014-06-26
    • 2022-11-28
    • 1970-01-01
    相关资源
    最近更新 更多