Javascript 在没有输入元素的情况下使用keypress或keydown事件

Javascript 在没有输入元素的情况下使用keypress或keydown事件,javascript,html,dom,Javascript,Html,Dom,我正在建造一个鼓机,我希望能够用键盘上的特定键触发鼓的声音。我为keypress和keydown事件添加了事件侦听器,但当按下这些键时,不会播放声音。目前的JavaScript代码也在输入元素中使用了这个函数,它成功地触发了声音 document.getElementById('drumpad1').addEventListener('keypress', tFunction(event)); function tFunction(event) { var key = event.keyCo

我正在建造一个鼓机,我希望能够用键盘上的特定键触发鼓的声音。我为keypress和keydown事件添加了事件侦听器,但当按下这些键时,不会播放声音。目前的JavaScript代码也在输入元素中使用了这个函数,它成功地触发了声音

document.getElementById('drumpad1').addEventListener('keypress', tFunction(event));
function tFunction(event) {
  var key = event.keyCode;     
  var char = String.fromCharCode(key);    
  var charUp = char.toUpperCase()
  if (char === 'q' || charUp === 'Q') {
      document.getElementById("beat").play();
  }
}
我还尝试了document.body.addEventListener,但它不起作用。 请帮助更换

getElementById'drumpad1'。addEventListener'keypress',tFunctionevent; 借

文件。添加了监听器“按键”,t功能;
如果文档处于焦点位置,这将起作用。

.addEventListener'keypress',t功能事件;应为.addEventListener'keypress',t函数;。给这个方法一个回调,而不是一个调用,这能回答你的问题吗?您应该使用event=>tFunctionevent来代替tFunctionevent。@CherryDT为什么?为什么要创建一个不需要的额外匿名方法呢?因为这也适用于其他情况,如event=>fnsomething、event、somethingElse。因此,OP可能更容易理解和应用。但实际上,我不是想纠正你的评论,而是OP的代码。在这种情况下,Just t函数当然也起作用。这是已知的复制品