0

这就是我正在做的一切:

$(document).keydown(function(e) {
    e.preventDefault();
    console.debug(e.keyCode, "down");
});
$(document).keyup(function(e) {
    e.preventDefault();
    console.debug(e.keyCode, "up");
});

你可以在这里看到问题:http: //jsfiddle.net/pJgyu/32530/

如果我按住一个字母键,keydown 会不断触发,直到我松开。然后 keyup 触发一次。这似乎是正确的行为。

如果我按住箭头键,keydown 和 keyup 会不断交替。为什么keyup会触发?

我试过没有“e.preventDefault();”。

此外,按住箭头键后,有时字母键会显示相同的奇怪行为。

4

2 回答 2

2

你的键盘可能坏了。当我尝试在您的 jsfiddle 中复制它时,我没有这个问题。

于 2013-05-22T21:51:35.973 回答
0

不仅键盘要坏。我遇到了同样的问题并花了一些时间在谷歌上搜索和调试它,直到几个小时后我才想起我使用的键映射软件。我的 AutoHotkey 脚本使用特殊键(例如箭头)做了几件事,这就是问题的原因。

于 2015-10-14T10:43:09.273 回答