Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

96
Visualizações
¿Cómo cancelar la escucha de un evento después de repetir el evento?

He creado una aplicación que intenta aprender a escuchar eventos de teclado. Cuando presiono las teclas de flecha, el color de fondo de divs cambia. Sin embargo, me gustaría saber cómo cancelar el efecto, es decir. volver al color de fondo predeterminado, cuando presiono la misma tecla nuevamente.

 document.addEventListener("keydown", pressKeyOn); const arUp = document.querySelector(".ar-up"); const arLeft = document.querySelector(".ar-left"); const arRight = document.querySelector(".ar-right"); const arDown = document.querySelector(".ar-down"); function pressKeyOn(e) { console.log(e); if (e.keyCode === 38) { arUp.style.backgroundColor = "red"; } else if (e.keyCode === 40) { arDown.style.backgroundColor = "green"; } else if (e.keyCode === 39) { arRight.style.backgroundColor = "navy"; } else if (e.keyCode === 37) { arLeft.style.backgroundColor = "violet"; } }

Entonces, ¿cómo volver al original (por ejemplo, fondo amarillo), si presiono la tecla de flecha respectiva?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede crear una clase para todos los colores y alternarla con cada clic.

 const arUp = document.querySelector(".ar-up"); const arLeft = document.querySelector(".ar-left"); const arRight = document.querySelector(".ar-right"); const arDown = document.querySelector(".ar-down"); function pressKeyOn(e) { if (e.keyCode === 38) arUp.classList.toggle("red") else if (e.keyCode === 40) arDown.classList.toggle("green") else if (e.keyCode === 39) arRight.classList.toggle("navy") else if (e.keyCode === 37) arLeft.classList.toggle("violet") } document.addEventListener("keydown", pressKeyOn);
 .red{ background-color: red;} .green{ background-color: green;} .navy{ background-color: navy;} .violet{ background-color: violet;}
 <div class="ar-up">ar-up</div> <div class="ar-left">ar-left</div> <div class="ar-right">ar-right</div> <div class="ar-down">ar-down</div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay una versión más genérica usando classList.toggle

 const colors = { "ArrowUp": "red", "ArrowDown": "green", "ArrowLeft": "navy", "ArrowRight": "violet" } document.addEventListener("keydown", function(e) { const key = e.key; if (colors[key]) document .querySelector(`.${key}`) .classList .toggle(colors[key]) })
 .red { background-color: red; } .green { background-color: green; } .navy { background-color: navy; } .violet { background-color: violet; }
 <div class="ArrowUp">ar-up</div> <div class="ArrowLeft">ar-left</div> <div class="ArrowRight">ar-right</div> <div class="ArrowDown">ar-down</div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda