jQuery - Manejo de eventos

Tenemos la capacidad de crear páginas web dinámicas mediante el uso de eventos. Los eventos son acciones que pueden ser detectadas por su aplicación web.

A continuación se muestran los ejemplos de eventos:

  • Un clic del mouse
  • Carga de una página web
  • Colocar el mouse sobre un elemento
  • Enviar un formulario HTML
  • Una pulsación de tecla en su teclado, etc.

Cuando se activan estos eventos, puede utilizar una función personalizada para hacer prácticamente lo que quiera con el evento. Estas funciones personalizadas llaman a los controladores de eventos.

Controladores de eventos vinculantes

Usando el modelo de eventos jQuery, podemos establecer controladores de eventos en elementos DOM con el bind() método de la siguiente manera -

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $('div').bind('click', function( event ){
               alert('Hi there!');
            });
         });
      </script>
		
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
	
   <body>
      <p>Click on any square below to see the result:</p>
		
      <div class = "div" style = "background-color:blue;">ONE</div>
      <div class = "div" style = "background-color:green;">TWO</div>
      <div class = "div" style = "background-color:red;">THREE</div>
   </body>
</html>

Este código hará que el elemento de división responda al evento de clic; cuando un usuario haga clic dentro de esta división a partir de entonces, se mostrará la alerta.

Esto producirá el siguiente resultado:

La sintaxis completa del comando bind () es la siguiente:

selector.bind( eventType[, eventData], handler)

A continuación se muestra la descripción de los parámetros:

  • eventType: Una cadena que contiene un tipo de evento de JavaScript, como hacer clic o enviar. Consulte la siguiente sección para obtener una lista completa de los tipos de eventos.

  • eventData - Este es un parámetro opcional, es un mapa de datos que se pasará al controlador de eventos.

  • handler - Una función para ejecutar cada vez que se activa el evento.

Eliminar controladores de eventos

Normalmente, una vez que se establece un controlador de eventos, permanece en vigor durante el resto de la vida de la página. Puede haber una necesidad cuando desee eliminar el controlador de eventos.

jQuery proporciona el unbind()comando para eliminar un controlador de eventos existente. La sintaxis de unbind () es la siguiente:

selector.unbind(eventType, handler)

or 

selector.unbind(eventType)

A continuación se muestra la descripción de los parámetros:

  • eventType: Una cadena que contiene un tipo de evento de JavaScript, como hacer clic o enviar. Consulte la siguiente sección para obtener una lista completa de los tipos de eventos.

  • handler - Si se proporciona, identifica el oyente específico que se eliminará.

Tipos de eventos

No Señor. Tipo de evento y descripción
1

blur

Ocurre cuando el elemento pierde el foco.

2

change

Ocurre cuando cambia el elemento.

3

click

Ocurre cuando se hace clic con el mouse.

4

dblclick

Ocurre cuando un mouse hace doble clic.

5

error

Ocurre cuando hay un error en la carga o descarga, etc.

6

focus

Ocurre cuando el elemento se enfoca.

7

keydown

Ocurre cuando se presiona la tecla.

8

keypress

Ocurre cuando se presiona y se suelta la tecla.

9

keyup

Ocurre cuando se suelta la tecla.

10

load

Ocurre cuando se carga el documento.

11

mousedown

Ocurre cuando se presiona el botón del mouse.

12

mouseenter

Ocurre cuando el mouse entra en una región de elementos.

13

mouseleave

Ocurre cuando el mouse sale de una región de elementos.

14

mousemove

Ocurre cuando se mueve el puntero del mouse.

15

mouseout

Ocurre cuando el puntero del mouse se mueve fuera de un elemento.

dieciséis

mouseover

Ocurre cuando el puntero del mouse se mueve sobre un elemento.

17

mouseup

Ocurre cuando se suelta el botón del mouse.

18

resize

Ocurre cuando se cambia el tamaño de la ventana.

19

scroll

Ocurre cuando se desplaza la ventana.

20

select

Ocurre cuando se selecciona un texto.

21

submit

Ocurre cuando se envía el formulario.

22

unload

Ocurre cuando se descargan documentos.

El objeto de evento

La función de devolución de llamada toma un solo parámetro; cuando se llama al controlador, el objeto de evento de JavaScript se pasará a través de él.

El objeto de evento a menudo es innecesario y el parámetro se omite, ya que generalmente hay suficiente contexto disponible cuando el controlador está obligado a saber exactamente lo que se debe hacer cuando se activa el controlador, sin embargo, hay ciertos atributos a los que debe acceder.

Los atributos del evento

No Señor. Descripción de propiedad
1

altKey

Establézcalo en verdadero si se presionó la tecla Alt cuando se desencadenó el evento, falso en caso contrario. La tecla Alt está etiquetada como Opción en la mayoría de los teclados Mac.

2

ctrlKey

Se establece en verdadero si se presionó la tecla Ctrl cuando se desencadenó el evento, falso en caso contrario.

3

data

El valor, si lo hay, pasado como segundo parámetro al comando bind () cuando se estableció el controlador.

4

keyCode

Para eventos de activación y desactivación de teclas, esto devuelve la tecla que se presionó.

5

metaKey

Se establece en verdadero si se presionó la tecla Meta cuando se desencadenó el evento, falso si no. La tecla Meta es la tecla Ctrl en PC y la tecla Comando en Mac.

6

pageX

Para eventos de mouse, especifica la coordenada horizontal del evento en relación con el origen de la página.

7

pageY

Para eventos de mouse, especifica la coordenada vertical del evento relativa al origen de la página.

8

relatedTarget

Para algunos eventos de mouse, identifica el elemento que el cursor dejó o ingresó cuando se disparó el evento.

9

screenX

Para eventos de mouse, especifica la coordenada horizontal del evento relativa al origen de la pantalla.

10

screenY

Para eventos de mouse, especifica la coordenada vertical del evento relativa al origen de la pantalla.

11

shiftKey

Establézcalo en verdadero si se presionó la tecla Mayús cuando se activó el evento, falso en caso contrario.

12

target

Identifica el elemento para el que se activó el evento.

13

timeStamp

La marca de tiempo (en milisegundos) cuando se creó el evento.

14

type

Para todos los eventos, especifica el tipo de evento que se activó (por ejemplo, clic).

15

which

Para eventos de teclado, especifica el código numérico de la tecla que causó el evento, y para eventos de mouse, especifica qué botón se presionó (1 para la izquierda, 2 para el medio, 3 para la derecha).

<html>
   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
      </script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $('div').bind('click', function( event ){
               alert('Event type is ' + event.type);
               alert('pageX : ' + event.pageX);
               alert('pageY : ' + event.pageY);
               alert('Target : ' + event.target.innerHTML);
            });
         });
      </script>
		
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
	
   <body>
      <p>Click on any square below to see the result:</p>
		
      <div class = "div" style = "background-color:blue;">ONE</div>
      <div class = "div" style = "background-color:green;">TWO</div>
      <div class = "div" style = "background-color:red;">THREE</div>
   </body>
</html>

Esto producirá el siguiente resultado:

Los métodos de eventos

Hay una lista de métodos que se pueden llamar en un objeto de evento:

No Señor. Método y descripción
1 preventDefault ()

Evita que el navegador ejecute la acción predeterminada.

2 isDefaultPrevented ()

Devuelve si event.preventDefault () se llamó alguna vez en este objeto de evento.

3 stopPropagation ()

Detiene la propagación de un evento a los elementos principales, lo que evita que los controladores principales sean notificados del evento.

4 isPropagationStopped ()

Devuelve si event.stopPropagation () se llamó alguna vez en este objeto de evento.

5 stopImmediatePropagation ()

Detiene la ejecución del resto de controladores.

6 isImmediatePropagationStopped ()

Devuelve si event.stopImmediatePropagation () se llamó alguna vez en este objeto de evento.

Métodos de manipulación de eventos

La siguiente tabla enumera los métodos importantes relacionados con eventos:

No Señor. Método y descripción
1 enlazar (tipo, [datos], fn)

Vincula un controlador a uno o más eventos (como hacer clic) para cada elemento coincidente. También puede vincular eventos personalizados.

2 desactivado (eventos [, selector] [, controlador (eventObject)])

Esto hace lo contrario de en vivo, elimina un evento en vivo vinculado.

3 hover (encima, fuera)

Simula desplazarse, por ejemplo, al mover el mouse dentro y fuera de un objeto.

4 en (eventos [, selector] [, datos], controlador)

Vincula un controlador a un evento (como un clic) para todos los elementos coincidentes actuales y futuros. También puede vincular eventos personalizados.

5 uno (tipo, [datos], fn)

Vincula un controlador a uno o más eventos para que se ejecuten una vez para cada elemento coincidente.

6 listo (fn)

Vincula una función que se ejecutará cuando el DOM esté listo para ser atravesado y manipulado.

7 disparador (evento, [datos])

Active un evento en cada elemento coincidente.

8 triggerHandler (evento, [datos])

Activa todos los controladores de eventos enlazados en un elemento.

9 desvincular ([type], [fn])

Esto hace lo contrario de enlazar, elimina los eventos enlazados de cada uno de los elementos coincidentes.

Métodos de ayuda de eventos

jQuery también proporciona un conjunto de funciones auxiliares de eventos que se pueden usar para activar un evento para vincular cualquier tipo de evento mencionado anteriormente.

Métodos de activación

A continuación se muestra un ejemplo que desencadenaría el evento de desenfoque en todos los párrafos:

$("p").blur();

Métodos de encuadernación

A continuación se muestra un ejemplo que uniría click evento en todos los <div> -

$("div").click( function () { 
   // do something here
});
No Señor. Método y descripción
1

blur( )

Activa el evento de desenfoque de cada elemento coincidente.

2

blur( fn )

Vincula una función al evento de desenfoque de cada elemento coincidente.

3

change( )

Activa el evento de cambio de cada elemento coincidente.

4

change( fn )

Vincula una función al evento de cambio de cada elemento coincidente.

5

click( )

Activa el evento de clic de cada elemento coincidente.

6

click( fn )

Vincula una función al evento de clic de cada elemento coincidente.

7

dblclick( )

Activa el evento dblclick de cada elemento coincidente.

8

dblclick( fn )

Vincula una función al evento dblclick de cada elemento coincidente.

9

error( )

Activa el evento de error de cada elemento coincidente.

10

error( fn )

Vincula una función al evento de error de cada elemento coincidente.

11

focus( )

Activa el evento de enfoque de cada elemento coincidente.

12

focus( fn )

Vincula una función al evento de enfoque de cada elemento coincidente.

13

keydown( )

Activa el evento keydown de cada elemento coincidente.

14

keydown( fn )

Vincular una función al evento keydown de cada elemento coincidente.

15

keypress( )

Activa el evento de pulsación de tecla de cada elemento coincidente.

dieciséis

keypress( fn )

Vincula una función al evento de pulsación de tecla de cada elemento coincidente.

17

keyup( )

Activa el evento keyup de cada elemento coincidente.

18

keyup( fn )

Vincula una función al evento keyup de cada elemento coincidente.

19

load( fn )

Vincula una función al evento de carga de cada elemento coincidente.

20

mousedown( fn )

Vincula una función al evento mousedown de cada elemento coincidente.

21

mouseenter( fn )

Vincular una función al evento mouseenter de cada elemento coincidente.

22

mouseleave( fn )

Vincula una función al evento mouseleave de cada elemento coincidente.

23

mousemove( fn )

Vincula una función al evento mousemove de cada elemento coincidente.

24

mouseout( fn )

Vincula una función al evento mouseout de cada elemento coincidente.

25

mouseover( fn )

Vincula una función al evento de mouseover de cada elemento coincidente.

26

mouseup( fn )

Vincula una función al evento mouseup de cada elemento coincidente.

27

resize( fn )

Vincula una función al evento de cambio de tamaño de cada elemento coincidente.

28

scroll( fn )

Vincular una función al evento de desplazamiento de cada elemento coincidente.

29

select( )

Activa el evento de selección de cada elemento coincidente.

30

select( fn )

Vincula una función al evento de selección de cada elemento coincidente.

31

submit( )

Activa el evento de envío de cada elemento coincidente.

32

submit( fn )

Vincula una función al evento de envío de cada elemento coincidente.

33

unload( fn )

Vincula una función al evento de descarga de cada elemento coincidente.