2
respostas

[Sugestão] Reestruturando o JS

Com base em outro curso que assisti aqui na Alura, montei o script de uma forma que eu considerem bem mais enxuta e que resolve alguns problemas de verificação sem necessitar dos ifs. Vou deixar o código aqui e qualquer feedback é válido :D

const buttons = document.querySelectorAll(".tecla");

buttons.forEach((elemento) => {
  elemento.addEventListener("click", (button) => {
    const className = button.target.classList[1];

    document.querySelector(`#som_${className}`).play();

    button.target.onkeydown = (evento) => {
      if (evento.code === "Space" || evento.code === "Enter") {
        button.target.classList.add('ativa');
      }
    };

    button.target.onkeyup = (evento) => {
      if (evento.code === "Space" || evento.code === "Enter") {
        button.target.classList.remove('ativa');
      }
    };
  });
});
2 respostas

Olá Lucas!

Obrigada por compartilhar seu código conosco. É sempre bom ver pessoas buscando melhorias em seus códigos.

Realmente, a forma como você reestruturou o script ficou bem mais enxuta e de fácil compreensão. A utilização do método forEach para percorrer os botões e adicionar o evento de clique é uma ótima prática.

Além disso, a utilização dos eventos onkeydown e onkeyup para adicionar e remover a classe 'ativa' é uma solução elegante para evitar o uso de condicionais if.

Parabéns pela iniciativa e continue assim, sempre buscando melhorias em seus códigos.

Espero ter ajudado e bons estudos!

é sempre muito bom melhorar seu próprios códigos pois ajuda a melhorar a sua logica, em alguns cursos fica mais verboso o código para ficar mais didático.