Enlace de eventos de jQuery y enlace de eventos nativo de JavaScript

Enlace de eventos jQuery

jQuery proporciona cuatro métodos de enlace para el monitoreo de eventos, a saber, bind y on.

Las funciones correspondientes para liberar la monitorización son desvincular y apagar respectivamente.

 

enlazar ( evento , [datos], función)

Bind es el que se usa con más frecuencia y su función es vincular una función de escucha de un tipo de evento específico al elemento seleccionado. El significado de los parámetros es el siguiente:

evento: tipo de evento, como hacer clic, cambiar, pasar el mouse, etc.

datos: los parámetros pasados ​​a la función de supervisión se recuperan a través de event.data. Opcional

función: función de monitor, puede pasar el objeto de evento, donde evento es el objeto de evento encapsulado por jQuery, que es diferente del objeto de evento original, por lo que debe prestarle atención al usarlo

usar:$("#div li").bind("click",myFun);

 

on ( evento, childSelector, datos, función )

El método on () agrega uno o más controladores de eventos a los elementos seleccionados y elementos secundarios. El más utilizado

Desde la versión 1.7 de jQuery, el método on () es una nueva alternativa a los métodos bind (), live () y delegate (). Este método aporta mucha comodidad a la API, recomendamos este método, simplifica la base del código jQuery.

Nota: Los controladores de eventos agregados mediante el método on () son aplicables a elementos actuales y futuros (como elementos nuevos creados por scripts).

Consejo: para eliminar el controlador de eventos, utilice el método off ().

Sugerencia: Para agregar un evento que solo se ejecuta una vez y luego eliminarlo, utilice el método one ().

evento: requerido. Especifica uno o más eventos o espacios de nombres que se eliminarán del elemento seleccionado. Varios valores de eventos están separados por espacios y también puede ser una matriz. Debe ser un evento válido.

childSelector: Opcional. Especifica controladores de eventos que solo se pueden agregar al elemento secundario especificado (y no al selector en sí, como el método delegate () obsoleto).

 datos: opcional. Especifica los datos adicionales que se pasan a la función.

función: opcional. Especifica la función que se ejecutará cuando se produzca el evento.

使用 : $ ( selector ) .on ( evento, childSelector, datos, función );

.click (), .trigger () también tienen efectos de enlace de eventos

 

Enlace de eventos nativo de JavaScript

1. Enlace directo en elementos DOM: los elementos DOM aquí pueden entenderse como etiquetas HTML. JavaScript admite eventos vinculantes directamente en etiquetas

2. Enlace de OnXXX en código JavaScript: los eventos de enlace en código JavaScript pueden separar el código JavaScript de las etiquetas HTML, y la estructura del documento es clara, lo que es conveniente para la gestión y el desarrollo.

3. Vinculación de la función de escucha de eventos: otra forma de vincular eventos es usar addEventListener () o attachEvent () para vincular la función de escucha de eventos.

 

1. Enlace directo en elementos DOM

1. Funciones nativas

1 <input οnclick = "alert ('Gracias por su apoyo')" type = "button" value = "Click me" />


2. Funciones personalizadas

Copiar codigo

1 <input οnclick = "myAlert ()" type = "button" value = "点 我" /> 
 2 
 3 <script type = "text / javascript"> 
 4 
 5 function myAlert () { 
 6 
 7 alert ("谢谢 支持" ); 
 8 
 9} 
10 
11 </script>

Copiar codigo

 

2. Enlace OnXXX en código JavaScript

La sintaxis para vincular eventos en código JavaScript es:

elementObject.onXXX = function () {

    // código de manejo de eventos

}

Entre ellos:

  • elementObject es un objeto DOM, es decir, un elemento DOM.
  • onXXX es el nombre del evento.


Por ejemplo, vincule un evento al botón con id = "demo" y muestre su atributo de tipo:

Copiar codigo

1 <input id = "demo" type = "button" value = "haz clic en mí para mostrar el atributo de tipo" /> 
 2 
 3 <script type = "text / javascript"> 
 4 
 5 document.getElementById ("demo"). Οnclick = function () { 
 6 
 7 alert (this.getAttribute ("type")); // esto se refiere al elemento HTML del evento actual, aquí está la <div> etiqueta 
 8 
 9} 
10 </script>    

Copiar codigo

 

Tres. Función de escucha de eventos vinculantes

Sintaxis de la función addEventListener ():

elementObject.addEventListener (eventName, handle, useCapture);

parámetro Descripción
elementObject Objetos DOM (es decir, elementos DOM).
nombre del evento El nombre del evento. Tenga en cuenta que aquí no hay "on" en el nombre del evento, como clic del mouse, clic en el evento, doble clic del mouse en el evento, doble clic en el evento, movimiento del mouse en el evento, movimiento del mouse fuera del evento, etc.
resolver Función de controlador de eventos, es decir, la función utilizada para manejar el evento.
useCapture El tipo booleano, si se usa capture, generalmente usa false. Esto implica el concepto de flujo de eventos de JavaScript, que se explicará en detalle en los capítulos siguientes.


Sintaxis de la función attachEvent (): (compatible con IE)

elementObject.attachEvent (eventName, identificador);

parámetro Descripción
elementObject Objetos DOM (es decir, elementos DOM).
nombre del evento El nombre del evento. Tenga en cuenta que, a diferencia de addEventListener (), el nombre del evento aquí tiene "on", como el evento de clic del mouse onclick, el evento de doble clic del mouse en doble clic, el movimiento del mouse en evento onmouseover, el evento de movimiento de mouse out onmouseout, etc.
resolver Función de controlador de eventos, es decir, la función utilizada para manejar el evento.

 

Nota: La función del controlador de eventos se refiere al "nombre de la función" sin paréntesis.


addEventListener () es un método estándar para vincular funciones de escucha de eventos, compatible con W3C, Chrome, FireFox, Opera, Safari, IE9.0 y versiones superiores, todas admiten esta función;

Sin embargo, IE8.0 y las versiones inferiores no admiten este método, utiliza attachEvent () para vincular la función de escucha de eventos. Por lo tanto, este método de vinculación de eventos debe tratar los problemas de compatibilidad del navegador.

El siguiente código para eventos vinculantes ha sido procesado por compatibilidad y puede ser compatible con todos los navegadores:

Copiar codigo

1 función addEvent (obj, type, handle) { 
 2 
 3 try {// Chrome, FireFox, Opera, Safari, IE9.0 y superior 
 4 
 5 obj.addEventListener (type, handle, false); 
 6 
 7} catch (e) { 
 8 
 9 try {// IE8.0 y por debajo de 
10 
11 obj.attachEvent ('on' + type, handle); 
12 
13} catch (e) {// navegador temprano 
14 
15 obj ['on' + type] = manejar; 
16 
17} 
18 
19} 
20 
21}                    

Copiar codigo

Aquí se usa try {...} catch (e) {...} en lugar de if ... else ... declaraciones para evitar mensajes de error del navegador.

Por ejemplo, para vincular un evento a un botón con id = "demo", aparecerá un cuadro de diálogo cuando se haga clic con el mouse:

 

Copiar codigo

1 var obj = document.getElementById ("demo"); 
2 addEvent (obj, "click", myAlert); 
3 
4 function myAlert () { 
5 
6 alert ("Soy un cuadro de diálogo"); 
7 
8}

Copiar codigo

 

 

La diferencia entre el enlace de eventos de jQuery y el enlace de eventos de JavaScript

El enlace de eventos en jQuery es superponible y el enlace de eventos en JavaScript es reemplazable.

Eche un vistazo al código de muestra:

Copiar codigo

1 / * jQuery 绑定 事件 * / 
 2 $ (". Cnd"). Click (function () {   
 3 console.log ("first")}   
 4);  
 5 $ (". Cnd"). Click (function () {   
 6 console.log ("segundo")}   
 7);  
 8      
 9 $ (". Cnd"). Click (function () {   
10 console.log ("3rd")}   
11);  
12      
13 / * js 绑定 事件 * / 
14 var cm2 = document.getElementById ("me2");  
15 cm2.οnclick = function () {   
16 console.log ("primero");  
17};  
18 cm2.οnclick = function () {   
19 console.log ("segundo");  
20};  
21 cm2.  
οnclick = function () { 22 console.log ("tercero");  
23};  

Copiar codigo

 

Ejecute el evento .cnd click de jQuery, la consola imprime:

 

Ejecute el evento de clic cm2 de js, lo que imprime la consola es:

 

Se puede encontrar:

Usando el método de enlace de eventos de jQuery, tres funciones de procesamiento están vinculadas al evento de clic del mismo elemento, y los resultados se muestran en orden, lo que indica que las funciones de procesamiento de eventos de jQuery están superpuestas;

Al utilizar el enlace de eventos nativo de JavaScript, puede encontrar que solo se ejecuta el último evento de enlace, y la función del controlador de eventos enlazada posteriormente sobrescribe la función del controlador de eventos anterior.

 

Supongo que te gusta

Origin blog.csdn.net/AN0692/article/details/110439137
Recomendado
Clasificación