1
resposta

[Projeto] Resolução de exercícios

Dessa forma não seria melhor?

const teclas = [ { classe: ".tecla_pom", som: "som_tecla_pom" }, { classe: ".tecla_clap", som: "som_tecla_clap" }, { classe: ".tecla_tim", som: "som_tecla_tim" }, { classe: ".tecla_puff", som: "som_tecla_puff" }, { classe: ".tecla_splash", som: "som_tecla_splash" }, { classe: ".tecla_toim", som: "som_tecla_toim" }, { classe: ".tecla_psh", som: "som_tecla_psh" }, { classe: ".tecla_tic", som: "som_tecla_tic" }, { classe: ".tecla_tom", som: "som_tecla_tom" } ];

const teclasElementos = document.querySelectorAll(".tecla_*");

teclas.forEach((tecla) => { const elemento = document.querySelector(tecla.classe); elemento.addEventListener("click", () => { document.getElementById(tecla.som).play(); }); });

1 resposta

Olá, Ricardo, como vai?

Sua ideia de organizar as teclas em um array de objetos ficou excelente, pois ajuda a manter o código mais limpo e facilita a manutenção. Dessa forma, fica fácil adicionar ou modificar teclas no futuro, bastando ajustar o array. Além disso, o uso do forEach para associar cada tecla ao seu som específico torna o código mais eficiente e organizado.

Só uma observação: no querySelectorAll, o seletor ".tecla_*" não selecionará todos os elementos, pois o * não funciona assim no querySelectorAll.

demonstrando erro ao utilizar o seletor *  no queryselectorall

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

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