在JavaScript中,我按下两个键,keydown
被完全解雇。当我释放其中一个键时,keyup
被触发。到现在为止还挺好。但我仍然按下一个键,为什么keydown
没有被解雇?我需要在游戏中发生这种情况。难道我做错了什么?这是预期的反应吗?是否有工作或其他什么?
window.addEventListener("keydown",
function (e) {
console.log('down');
}, false);
window.addEventListener('keyup',
function (e) {
console.log('up');
}, false);
答案 0 :(得分:0)
让我觉得你喜欢这样做:
var down = false;
var up = false;
document.body.addEventListener('keydown', function (e) {
if(e.which === 40) {
down = true;
}
if(e.which === 38) {
up = true;
}
});
document.body.addEventListener('keyup', function (e) {
if(e.which === 40) {
down = false;
}
if(e.which === 38) {
up = false;
}
// logic here for one but not the other
if(down && !up) {
alert('down but not up!');
}
});