【发布时间】: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