Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Há problema quando aperto o botão e não aparece a classe ativa?

Bom, minha única dúvida é que eu estou usando o Microsoft Edge, segui os passos da professora ao inserir a classe ativa quando utilizamos o "Enter" e o "Space", porém, quando eu vou no meu navegador abro a aba do DevTools de Elements e testo os botões, eles funcionam perfeitamente, porém, quando eu faço esse processo não aparece nas classes que a classe "ativa" está lá, nem sequer uma ação corresponde aparece. (Literalmente está funcionando somente com o Enter e o Space, caso eu queira usa alguma outra tecla, ele estará me retornando false.

main.js

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

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

//para -----------------------------------------------------
for (let contador = 0; contador < listaDeTeclas.length; contador++){

    const tecla = listaDeTeclas[contador];

    const instrumento = tecla.classList[1];

    const idAudio = `#som_${instrumento}`;

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

    tecla.onkeydown = function (evento) {

        if (evento.code === 'Space') {
        tecla.classList.add('ativa');
    }

    if (evento.code === 'Enter') {
        tecla.classList.add('ativa');

    }

    tecla.onkeyup = function() {
        tecla.classList.remove('ativa')
    }

}

}
1 resposta
solução!

Parece que você está enfrentando um problema ao adicionar a classe "ativa" nos botões ao pressionar as teclas "Enter" e "Space" no navegador Microsoft Edge. No entanto, ao inspecionar os elementos na aba DevTools do navegador, a classe não está sendo adicionada conforme o esperado.

Uma possível solução para esse problema é substituir evento.code por evento.key nas condições do if dentro do evento onkeydown. O código modificado ficaria assim:

javascript Copy code tecla.onkeydown = function (evento) { if (evento.key === ' ') { // Alteração aqui: de 'Space' para ' ' tecla.classList.add('ativa'); }

if (evento.key === 'Enter') {
    tecla.classList.add('ativa');
}

}

tecla.onkeyup = function() { tecla.classList.remove('ativa') } Essa modificação deve permitir que a classe "ativa" seja adicionada corretamente aos botões ao pressionar as teclas "Enter" e "Space" no Microsoft Edge. Verifique se com essa alteração o comportamento desejado é alcançado.

Se o problema persistir, pode ser necessário investigar outras possíveis causas, como conflitos com outros trechos de código, problemas de escopo ou outros aspectos específicos do seu ambiente de desenvolvimento.