¿Cómo realizar la operación de hacer clic y mantener dentro de un elemento usando jQuery?

Dado un elemento HTML y la tarea es hacer clic y mantener presionado un elemento en un documento durante unos segundos para realizar la operación usando jQuery.

Acercarse:

  • Seleccione un elemento HTML.
  • Agregue el detector de eventos a ese elemento y agregue un temporizador timeOut para ese evento.
  • Si ese evento se activa durante unos segundos, active otro evento para identificar que el evento sucede.

Ejemplo 1: en este ejemplo, al hacer clic y mantener presionado dentro del div durante 2 segundos, se activará otro evento, que simplemente muestra que sucedió ese evento.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to perform click-and-hold operation
        inside an element using jQuery ?
    </title>
      
    <style>
        #div {
            background: green;
            height: 100px;
            width: 200px;
            margin: 0 auto;
            color: white;
        }
    </style>
      
    <script src = 
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
    </script>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color:green;"> 
        GeeksForGeeks 
    </h1>
      
    <p id = "GFG_UP" style = 
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <div id = "div">
        Div Element.
    </div>
    <br>
      
    <p id = "GFG_DOWN" style = 
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        $('#GFG_UP').text("Click and Hold inside the"
                    + " div for 2 seconds");
          
        var tId = 0;
          
        $('#div').on('mousedown', function() {
            tId = setTimeout(GFG_Fun, 2000);
        }).on('mouseup mouseleave', function() {
            clearTimeout(tId);
        });
          
        function GFG_Fun() {
            $('#GFG_DOWN').text("Click and Hold for 2 "
                    + "seconds, done.");
        }
    </script> 
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Ejemplo 2: en este ejemplo, al hacer clic y mantener presionado dentro del documento del cuerpo durante 2 segundos, se activará otro evento, que simplemente muestra que ese evento sucedió. Este ejemplo separa la lógica de los eventos mousedown y mouseup .

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to perform click-and-hold operation
        inside an element using jQuery ?
    </title>
      
    <style>
        #div {
            background: green;
            height: 100px;
            width: 200px;
            margin: 0 auto;
            color: white;
        }
    </style>
      
    <script src = 
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
    </script>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color:green;"> 
        GeeksForGeeks 
    </h1>
      
    <p id = "GFG_UP" style =
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <div id = "div">
        Div Element.
    </div>
    <br>
      
    <p id = "GFG_DOWN" style = 
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        $('#GFG_UP').text("Click and Hold inside the"
                    + " div for 2 seconds");
          
        var tId = 0;
          
        $("#div").mousedown(function() {
            tId = setTimeout(GFG_Fun, 2000);
            return false;
        });
        $("#div").mouseup(function() {
            clearTimeout(tId);
        });
          
        function GFG_Fun() {
            $('#GFG_DOWN').text("Click and Hold for 2 "
                    + "seconds, done.");
        }
    </script> 
</body> 
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *