我有一个代码,我想检测某人何时按下某个键,然后当他们松开该键时,该代码会删除表示他们正在按下该键的代码。我尝试使用网上找到的信息拼凑一些代码。 这是我到目前为止所拥有的:
var down = {};
document.addEventListener("keydown", function(evt) {
down[evt.keyCode] = true;
console.log(down)
});
document.addEventListener("keyup", function(evt) {
delete down[evt.keyCode];
});
var p = 0
if (down(65) == 65 && p - 1 >= 0) {
p -= 1;
}
if (down(65) == 68 && p + 1 <= 9) {
p += 1;
}
控制台一直说 down 不是一个函数。我如何读取他们按下的键码,然后在他们抬起按键后删除该键码实例。
最佳答案
您没有正确访问 down
的值。对于对象,括号或点符号是正确的方法:
var down = {};
document.addEventListener("keydown", function(evt) {
down[evt.keyCode] = true;
console.log(down)
});
document.addEventListener("keyup", function(evt) {
delete down[evt.keyCode];
});
var p = 0;
if (down[65] === 65 && p - 1 >= 0) {
p -= 1;
}
if (down[65] == 68 && p + 1 <= 9) {
p += 1;
}
关于javascript - Keydown 和 keyup 事件监听器工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575786/