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

150
Vistas
Tener un botón con dos comportamientos diferentes para hacer clic y presionar el mouse

Deseo que el mismo botón se comporte de manera diferente para el clic izquierdo y el botón izquierdo del mouse hacia abajo. Al hacer clic, debe agregar 15 al número actual, al presionar el mouse, agrega 1 mientras el mouse esté presionado

 var value = 0; document.getElementById("Addbtn").addEventListener("mousedown", mouseDown); document.getElementById("Addbtn").addEventListener("click", mouseClick); function mouseDown() { this.value++; document.getElementById("demo").innerHTML = this.value.tosSring(); } function mouseClick() { this.value += 15; document.getElementById("demo").innerHTML = this.value.tosSring(); }

El problema es que ambos eventos se activan y deseo distinguirlos, de modo que cuando se mantiene presionado el mouse, el clic no se activará y viceversa.

¿Hay una manera de lograr esto? Salud

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

0

Como dije en el comentario, dado que click y presionar el mousedown están relacionados y no hay forma de desconectarlos entre sí, la solución puede venir con un pequeño truco, agregando un tiempo de espera para determinar si fue una "retención prolongada" de el ratón hacia abajo. Se agregó una pequeña bonificación para deshabilitar el clic si se ha activado el botón hacia abajo, puede eliminarlo si no es necesario. También tenga en cuenta que está en una espera de 1 segundo (1000 ms), cámbielo de acuerdo con cuánto puede esperar antes de decir que es un evento de mousedown. 1 segundo parece mucho para un usuario en algún momento (alrededor de 500 ms es un punto óptimo para mí)

 var value = 0; var mouseHoldTimeout; var mouseDownDone = false; document.getElementById("Addbtn").addEventListener("mousedown", mouseDown); document.getElementById("Addbtn").addEventListener("click", mouseClick); function mouseDown() { mouseHoldTimeout = setTimeout(() => { value++; mouseDownDone = true; document.getElementById("demo").innerHTML = value.toString(); }, 1000); } function mouseClick() { if (mouseHoldTimeout) { clearTimeout(mouseHoldTimeout); mouseHoldTimeout = null; } if (mouseDownDone) { mouseDownDone = false; return; } value += 15; document.getElementById("demo").innerHTML = value.toString(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

El evento mousedown se activará cuando haga clic en la izquierda o la derecha o incluso en el medio . No importa en cuál haga clic, ejecuta la función. En contraste, el evento de clic se activará cuando haga clic en la izquierda . Por lo tanto, parece que cuando hace clic en la izquierda, activa el mousedown (para la izquierda) y hace clic en el evento. A medida que el documento proporciona, el evento de clic se activa después de presionar y subir el mouse.

conceptos básicos del ratón js

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