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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software