Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript添加调用另一个onkeyup函数的函数?_Javascript_Arrays_Audio_Onkeyup - Fatal编程技术网

如何使用JavaScript添加调用另一个onkeyup函数的函数?

如何使用JavaScript添加调用另一个onkeyup函数的函数?,javascript,arrays,audio,onkeyup,Javascript,Arrays,Audio,Onkeyup,所以基本上我有一个小网站,就像一个鼓套件。我希望它在单击屏幕上的元素时播放声音,然后我还希望在我按下相应的数字键盘键时能够“单击”相同的屏幕上的元素 当我点击它的时候,它就开始播放了,我就是不能让onkeyup函数工作 const sounds = document.querySelectorAll('.sound'); const drumPads = document.querySelectorAll('.drumpadContainer'); const keycodes =[

所以基本上我有一个小网站,就像一个鼓套件。我希望它在单击屏幕上的元素时播放声音,然后我还希望在我按下相应的数字键盘键时能够“单击”相同的屏幕上的元素

当我点击它的时候,它就开始播放了,我就是不能让onkeyup函数工作

  const sounds = document.querySelectorAll('.sound');
  const drumPads = document.querySelectorAll('.drumpadContainer');
  const keycodes =[
    49,
    50,
    51,
    52,
    53,
    54
  ]

  //Can i make sound??

  drumPads.forEach((drumpad, index) => {
    drumpad.addEventListener('click', function() {
      console.log("You clicked a button");
      sounds[index].currentTime = 0;
      sounds[index].play();
    })
    drumpad.addEventListener('onkeyup', function() {
      if (onkeyup == keycodes[index]){
        drumPads[index].click();
      }
    })

  });



})

keyup
处理程序应该在
窗口上。它应该获取键代码的索引,然后使用该索引获取要单击的相应元素的索引

window.addEventListener("keyup", function(e) {
    var index = keycodes.indexOf(e.keyCode);
    if (index > -1) {
        drumPads[index].click();
        e.preventDefault();
        e.stopPropagation();
    }
}

事件的名称只是
keyup
,而不是
onkeyup
。但它们没有在
drumpad
元素上键入。因此,如果我理解正确,要正确执行此操作,我需要执行window.eventlistener?,然后询问event.keyup==keycodes[index]?对不起,我是新来的:/阅读我的答案以正确理解。这正是需要的。非常感谢,顺便说一句,你的答案中有一个小错误。
drumpads[index]。单击();
应该是:
drumpads[index]。单击();