Keydown 和 keyup 事件监听器工作正常
Keydown and keyup eventlisteners are working properly
我有一个代码,用于检测某人何时按下某个键,然后当他们释放它时,该代码会删除表明他们正在按下该键的代码。我试图使用我在网上找到的信息拼凑一些代码。
这是我目前所拥有的:
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;
}
是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;
}
只需将 down(65) 更改为 down[65] 即可获得它的值。
down(65)
作为函数向下调用
down[65]
访问名为 down 的数组的索引 65 的值'
我有一个代码,用于检测某人何时按下某个键,然后当他们释放它时,该代码会删除表明他们正在按下该键的代码。我试图使用我在网上找到的信息拼凑一些代码。 这是我目前所拥有的:
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;
}
是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;
}
只需将 down(65) 更改为 down[65] 即可获得它的值。
down(65)
作为函数向下调用
down[65]
访问名为 down 的数组的索引 65 的值'