Как использовать JavaScript для добавления функции, которая вызывает другую функцию onkeyup? - PullRequest
0 голосов
/ 01 марта 2020

Так что, в принципе, у меня есть небольшой сайт, который действует как ударная установка Я хочу, чтобы он воспроизводил звук, когда вы щелкаете по экранному элементу, а затем я хочу, чтобы те же самые элементы на экране можно было «нажимать» всякий раз, когда я нажимаю соответствующую клавишу с цифровой клавиатурой.

Я получил чтобы играть, когда я нажимаю на него, я просто не могу заставить работать функцию 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();
      }
    })

  });



})

1 Ответ

0 голосов
/ 01 марта 2020

Обработчик keyup должен быть включен window. Он должен получить индекс кода ключа, а затем использовать его, чтобы получить индекс соответствующего элемента для щелчка.

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