某些键会触发onKeyDown和onKeyPress事件,例如A
,而某些键只触发onKeyDown,例如SHIFT
。如何检查onKeyPress 是否已针对特定密钥触发?我需要在按下按键后立即检测到它,所以由于延迟,我不能使用onKeyUp。
答案 0 :(得分:1)
在这种情况下你只能使用onKeyUp,因为在onKeyDown之后和onKeyUp之前触发onKeyPress。你可以存储onKeyPress是否已经为这样的键触发了:
var keyPressedFired = false;
document.addEventListener("keypress", function(e) {
keyPressedFired = true;
});
document.addEventListener("keyup", function(e) {
if (!keyPressedFired) {
alert('KeyPress not fired this key');
}
keyPressedFired = false;
});
运行代码段,点击其下方的白色部分,然后按SHIFT