1
resposta

meu console diz q a "tecla" nao ta definida

erro e o codigofunction tocaSom (idElementoAudio) {

document.querySelector(idElementoAudio).play();

const listaDeTeclas = document.querySelectorAll('.tecla');

let contador = 0

//enquanto //while (contador < listaDeTeclas.length) {

//para 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) {

console.log(evento.code == 'Space')

if (evento.code === 'Space') {
    tecla.classList.add ('ativa');
}

if (evento.code === 'Enter') {
    tecla.classList.add ('ativa');
}

}

tecla.onkeyup = function () {
    tecla.classList.remove ('ativa');
}

}

}

1 resposta

Guilherme, poderia usar o map ex: listaDeTeclas.map(tecla => { ----- seu codigo utilizando a variavel tecla --- });

isso te garantiria que ele percorreria as posições valida, pelo que eu vi aqui a sua variavel no seu codigo atual ta faltando ; no final da variavel . outro coisa seria a atribuição direta [contador] por exemplo, isso pode retornar um campo que não tem valor e retornar um erro;

uma dica, usa o console.log() para debugar.