1
resposta

Não está saindo o som

Autoexplicativo, o console.log( ) está funcionando normalmente, mas não sei o que está errado.

const listaTeclas = document.querySelectorAll('.tecla');
function tocaSom(idElementoSom){
    document.querySelector(idElementoSom).play();
}
for(let i = 0; i < listaTeclas.length; i++){

    var tecla = listaTeclas[i].classList[1];
    //template string----------------
    const idAudio = `#som_${tecla}`;

    tecla.onclick = function(){
        tocaSom(idAudio);
    }
    console.log(i);
}
1 resposta

Oi :D

Acho que está dando erro pois o onclick precisa "entrar" no valor de listaTeclas[i] e não o valor de listaTeclas[i].classList[1], portanto teria que criar uma const pra guardar listaTeclas[i] e colocar essa const no onclick ao invés da const tecla (como consta no seu código)

Ficaria assim:

const tecla = listaTeclas[i].classList[1];

const a = listaTeclas[i];

const idAudio = `#som_${tecla}`;

console.log(idAudio)

a.onclick = function(){
    tocaA(idAudio);
}
`

ou se preferir pode colocar direto listaTeclas[i].onclick

Acredito que seja isso, refiz e foi a única forma que encontrei para fazer os sons tocarem.