Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Aula 7 - Módulo 4: Estou com problemas para executar o código.

Estou preso nessa parte à algum tempo. Já voltei o curso inteiro pra tentar entender onde errei e ainda não consegui enxergar, já revisei linha por linha e não encontrei o erro, espero que olhos mais treinados que os meus consigam me ajudar kkkk. O erro que o console me retorna é que não está conseguindo ler o valor de 'play'.

function tocaSom(idElementoAudio) {
    document.querySelector(idElementoAudio).play();
}

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

let contador = 0;

while (contador < listaDeTeclas.length) {

    const tecla = listaDeTeclas[contador];
    const instrumento = tecla.classList[1];
    const idAudio = `#som_${instrumento}`;

    console.log(idAudio);

    tecla.onclick = function () {
        tocaSom('idAudio');
    }

    contador = contador + 1;

    console.log(contador);
}

erro  voltado pelo navegador

3 respostas
solução!

Tudo bem Gleison? Note que você esta passando uma string para o function tocaSom

tecla.onclick = function () {
    tocaSom('idAudio');
}

Tente passar dessa forma sem aspas

tecla.onclick = function () {
    tocaSom(idAudio);
}

Espero ter ajudado a solucionar seu problema e bons estudos :)

Obrigado Lucas, eu passei tanto tempo procurando um erro de digitação que nem percebi que eram as aspas. Problema resolvido.

const teclado = document.querySelectorAll('.tecla'); let i = 0;

while(i < teclado.length){ const som = teclado[i].classList[1]; teclado[i].onclick = ()=>{ tocar(som_${som}) } i++ }

function tocar(id){ document.getElementById(id).play() }