es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer que un mouse haga doble clic con un solo clic en JavaScript puro?

Hola, estoy escribiendo un complemento sin JQuery.

En un solo clic, item.id no está definido y el enlace no se abre.
Pero después de un segundo clic, el id está definido.

Entonces estoy buscando una solución alternativa para hacer que el ratón haga doble clic en un solo clic al hacer clic en este enlace href.

El div no tiene un id por defecto propio.

Gracias por tu ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puedes usar los eventos del mouse mousedown y mouseup para detectar un doble clic. Aquí tienes un ejemplo de código:

    var lastClickedTime = 0;
    var doubleClickDelay = 300; // milisegundos
    
    document.querySelector("a").addEventListener("mousedown", function(event) {
        var currentTime = new Date().getTime();
        var timeElapsed = currentTime - lastClickedTime;
        if (timeElapsed <= doubleClickDelay) {
            // Se detectó un doble clic
            event.preventDefault(); // evitar comportamiento predeterminado del enlace
            console.log("Se detectó un doble clic en:", event.target);
            // añade tu lógica aquí
        }
        lastClickedTime = currentTime;
    });
    

    Este código escucha el evento mousedown del enlace (asumiendo que solo hay una etiqueta <a> en la página) y verifica si el tiempo transcurrido desde el último clic es menor que doubleClickDelay milisegundos (que está establecido en 300 en este ejemplo). Si es menor, se detecta un doble clic y puedes evitar el comportamiento predeterminado del enlace y realizar tu propia lógica.

    Ten en cuenta que este código no depende del atributo id del elemento seleccionado y debería funcionar incluso si el elemento seleccionado no tiene un atributo id.

Comments are closed.