Javascript js-空格键上的触发器通用函数按文档上的任意位置

Javascript js-空格键上的触发器通用函数按文档上的任意位置,javascript,addeventlistener,keydown,Javascript,Addeventlistener,Keydown,我有一个颜色猜测游戏,有六个不同的颜色方块,页面顶部有一个rgb代码。当点击页面上的重置按钮时,游戏工作,游戏通过函数-resetUI()重置 但是,我想在按下空格键时触发resetUI函数。我有以下代码,它不会抛出任何错误,但也不起作用: var body = document.querySelector("body"); body.addEventListener("keydown",function(){ if(this.key === " "){ resetUI(); }

我有一个颜色猜测游戏,有六个不同的颜色方块,页面顶部有一个rgb代码。当点击页面上的重置按钮时,游戏工作,游戏通过函数-resetUI()重置

但是,我想在按下空格键时触发resetUI函数。我有以下代码,它不会抛出任何错误,但也不起作用:

var body = document.querySelector("body");
body.addEventListener("keydown",function(){
  if(this.key === " "){
    resetUI();
  }
});
我相当肯定我使用“this”是错误的,但我想不出其他替代方法


我已经搜索了MDN和stackOverflow,但还没有找到解决这个问题的方法。谢谢。

您有很多不必要的代码。您应该从回调函数接收
事件
对象,以检查按下了哪个键

要检查空格键,您不应该检查
”,而必须检查事件的键码

document.body.onkeydown=函数(e){
如果(e.keyCode==32){
console.log(“空格键按下”);
resetUI();
}
}
属于事件(传递到事件处理程序中),而不是主体(这就是
所指的内容)

您将遇到的下一个问题是,当您向页面添加输入或文本区域时,用户在输入中添加空格时,它将运行您的函数。。在启动函数之前,您可以对照目标进行检查,以确保输入没有收到击键

var body=document.querySelector(“body”);
正文.addEventListener(“向下键控”,函数(e){
变量isInput=~[“TEXTAREA”,“INPUT”].indexOf(e.target.tagName);
如果(e.key==“”&&!isInput){
//resetUI();
log(“u单击了空格键,它不在输入中”);
}
});