我有一个代码,当有人按下某个键时我想要检测到,然后当他们释放它时,代码会删除代码,说他们正在按键。我试图使用我在网上找到的信息拼凑一些代码。 这是我到目前为止所做的:
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;
}
控制台一直说下来不是一个功能。我如何阅读他们按下的键码,然后在他们拿起钥匙后删除该键码的实例。
答案 0 :(得分:1)
您未正确访问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;
}
&#13;
答案 1 :(得分:1)
它是down['65']
,而不是down(65)
。
您还应该在比较之前测试down['65']
是否存在:
if (down['65'] && down['65'] == 65 && p - 1 >= 0) {
p -= 1;
}
if (down['65'] && down['65'] == 68 && p + 1 <= 9) {
p += 1;
}
答案 2 :(得分:1)
只需将(65)更改为[65]以获得它的价值。
down(65)
调用函数
down[65]
访问名为down'