Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha versão final - adc "NumpadEnter"

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');
    }
}
1 resposta
solução!

Oi Poliana, tudo bem?

Que legal essa sua implementação! Parabéns por se dedicar tanto ;). Já pensou em postar nas redes sociais? Se for postar, marque a Alura. Nós adoramos ver os resultados de vocês.

Continue os bons estudos!

Abraços.