1
resposta

[Dúvida] Função anônimas

Alguém pode me explicar o por que a função "tocaSom" não está sendo executada quando a função anônima está sendo executada pelo atributo?

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

const somDasTeclas = document.querySelectorAll('audio');

function tocaSom(indice) { somDasTeclas[indice].play(); }

for (atual = 0; atual < teclas.length; atual++) { teclas[atual].onclick = function () { tocaSom(atual); } }

1 resposta

Saudações.

Vc esqueceu de declarar a variável atual no laço for. Basta vc colocar let antes da variável atual. for (let atual = 0; atual < teclas.length; atual++) { teclas[atual].onclick = function () { tocaSom(atual); } }