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

155
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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