javascript - Keydown 和 keyup 事件监听器工作正常

标签 javascript events addeventlistener keycode

我有一个代码,我想检测某人何时按下某个键,然后当他们松开该键时,该代码会删除表示他们正在按下该键的代码。我尝试使用网上找到的信息拼凑一些代码。 这是我到目前为止所拥有的:

 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/

相关文章:

javascript - Express中的Socket.io从客户端接收未定义的数据

java - 为什么 Java Nashorn __DIR__、__LINE__ 和 __FILE__ 为空?

c# - 如何用计时器引发事件?

jquery - 为非匿名函数绑定(bind) this 关键字

javascript - jQuery addEventListener 在 IE8 中不起作用

javascript - 围绕一条线创建一个多边形

javascript - 在 Angular2 中创建动态数组

javascript - Google map - 更改事件时全屏显示?

Javascript 获取事件处理程序不起作用

javascript - 如何访问事件监听器内的类函数