Adicionei mais uma condição na estrutura condicional if do evento para ter um melhor funcionamento do código se o usuário pressionar o enter do teclado númerico. Dessa forma, meu código ficou:
function tocaSom (seletorAudio) {
const elemento = document.querySelector(seletorAudio);
if (elemento != null && elemento.localName === 'audio'){
elemento.play();
}
else {
console.log('Elemento não encontrado ou seletor inválido!');
}
}
const listaDeTeclas = document.querySelectorAll('.tecla');
//enquanto
for (let contador = 0; contador < listaDeTeclas.length; contador++) {
const tecla = listaDeTeclas[contador];
const instrumento = tecla.classList[1];
const idAudio = `#som_${instrumento}`; //template string
tecla.onclick = function () {
tocaSom(idAudio);
}
tecla.onkeydown = function (evento) {
if (evento.code === "Enter" || evento.code === "NumpadEnter" || evento.code === "Space") {
tecla.classList.add('ativa');
}
}
tecla.onkeyup = function (){
tecla.classList.remove('ativa');
}
}