Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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); } }