1
resposta

Dúvida For

Eu incluí a classe som em todas tags audio. Fiz o código abaixo que funcionou, mas apenas porque incluí dentro do for a const Contador2, pois para a lista de sons o contador não existia. E mesmo se eu declarasse o contador2 como "var" não dava certo, funcionando apenas com "const". Por gentileza, gostaria que me explicassem o porquê.

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



for (let contador = 0; contador < listaDeTeclas.length; contador++) {

        const contador2 = contador
        listaDeTeclas[contador2].onclick = function () {
        listaDeSons[contador2].play();



}
1 resposta

Olá Alessandro, tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Analisei o seu código e testei o seu código e o único problema aparente que estava nele era a ausência do fechamento da função anônima dentro do for. Imagino que isso possa ter ocorrido quando você foi copiar o seu código para a página do fórum.

Sobre a questão que você comentou, ao realizar um teste com a sua ideia original não encontrei o problema que você havia relatado, que no caso seria a lista de sons não reconhecer o contador, mas durante o meu teste funcionou corretamente. Segue abaixo o seu código modificado que eu testei:

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

for (let contador = 0; contador < listaDeTeclas.length; contador++) {
        listaDeTeclas[contador].onclick = function () {
        listaDeSons[contador].play();
    }
}

Espero que eu tenha lhe ajudado de alguma forma, caso ainda tenha problemas com relação a este tópico, estarei a sua disposição. Grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.