Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
El rebote de Javascript para el evento mousemove no funciona

Revisé SO y encontré este enlace de respuesta y escribí mi enlace de solución, pero en realidad no funciona.

Tarea:

  1. Escribir varios bloques y agregarles un detector de eventos mouseover.
  2. Después de que se dispare el evento, se procesará con un rebote.
  3. Visualización de un evento en la consola

Mi código:

 const cards = document.getElementsByClassName('card-wrapper'); function onMouseMoveHandler(e) { return debounce(() => update(e)); } function debounce(func) { let isCan = true; return () => { if (isCan) { func(); isCan = false; setTimeout(() => isCan = true, 500); } } } function update(e) { console.log(e); } for (let i = 0; i < cards.length; i++) { cards[i].onmousemove = onMouseMoveHandler; }
 body { display: flex; } .card-wrapper { margin: 2%; width: 300px; height: 150px; } .card { width: 100%; height: 100%; background: blue; }
 <div class="card-wrapper card-1"> <div class="card"></div> </div> <div class="card-wrapper card-2"> <div class="card"></div> </div>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Envolvió onMouseMoveHandler en una función que evita que se llame a la función rebotada. Si bien podría hacer debounce(...)() para llamarlo, ese no será el comportamiento que desea. En su lugar, debe convertirla en una variable simple y asignarla a la función de rebote return from debounce .

 // no need for a function! const onMouseMoveHandler = debounce((e) => update(e)); // or just debounce(update); function debounce(func) { let isCan = true; return () => { if (isCan) { func(); isCan = false; setTimeout(() => isCan = true, 500); } } } function update(e) { console.log(e); } for (let i = 0; i < cards.length; i++) { cards[i].onmousemove = onMouseMoveHandler; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda