¿Cuál es la diferencia entre .on () y .bind () en jQuery?

El método .bind () registra el evento y el controlador de eventos directamente en el elemento DOM. Este método sigue siendo muy útil cuando se conectan los controladores de eventos, pero hay varios problemas de rendimiento que se enumeran a continuación.

Internamente .bind () se asigna a .on () según la versión actual de Jquery .bind puede eliminarse de versiones futuras en cualquier momento. No hay ninguna razón para seguir usando .bind y todas las razones para preferir .on en su lugar.

¡El método .bind () adjuntará el controlador de eventos a todos los anclajes que coincidan! Eso no es bueno. No solo es costoso iterar implícitamente sobre todos esos elementos para adjuntar un controlador de eventos, sino que también es un desperdicio ya que es el mismo controlador de eventos una y otra vez.

Problemas

  1. El método adjunta el mismo controlador de eventos a cada elemento coincidente en la selección.
  2. No funciona para elementos agregados dinámicamente que coinciden con el mismo selector.
  3. Existen problemas de rendimiento cuando se trata de una gran selección.
  4. El archivo adjunto se realiza por adelantado, lo que puede tener problemas de rendimiento en la carga de la página.

El método on () está “sobrecargado” con diferentes firmas, lo que a su vez cambia la forma en que se enlaza el enlace del evento. El método .on aporta mucha consistencia a la API y, con suerte, hace las cosas un poco menos confusas.

Contras
1. Trae confusión porque el comportamiento cambia en función de cómo se llama el método.

.bind () está en desuso a partir de jQuery 1.7, y el método preferido para enlazar eventos es .on () (directamente desde el documento).

.on () se introdujo para intentar fusionar los métodos de manejo de eventos de jQuery, y debería proporcionar todo lo necesario para administrar el manejo de eventos, es decir, .bind () ya no es necesario.

Fue abordado en la versión 1.7: Blog oficial de jQuery
Además, este artículo lo explica con un poco más de detalles: jQuery 1.7+ .on () vs .live () Review

¿Todavía quieres preguntar en Quora cuando tienes un profesional de programación “REAL” disponible en StackOverflow?

De todos modos, aquí están las URL de referencia.

http://stackoverflow.com/questio

http://stackoverflow.com/questio

¿Cuál es la diferencia entre `on` y` live` o `bind`?

on() es un intento de fusionar la mayoría de las funciones de enlace de eventos de jQuery en una. Esto tiene la ventaja adicional de arreglar las ineficiencias con live vs delegate . En futuras versiones de jQuery, estos métodos se eliminarán y solo one activarán y quedará one .

Ejemplos:

// Usando live ()
$ (“. mySelector”). live (“clic”, fn);

// Equivalente `on` (no hay un equivalente exacto, pero con buenas razones)
$ (documento) .on (“clic”, “.mySelector”, fn);
// Usando bind ()
$ (“. mySelector”). bind (“clic”, fn);

// Equivalente `on`
$ (“. mySelector”). on (“clic”, fn);
// Usando delegate ()
$ (document.body) .delegate (“. mySelector”, “click”, fn);

// Equivalente `on`
$ (document.body) .on (“clic”, “.mySelector”, fn);

Internamente, .bind se asigna directamente a .on en la versión actual de jQuery. (Lo mismo ocurre con .live.) Por lo tanto, hay un golpe de rendimiento pequeño pero prácticamente insignificante si usas .bind en su lugar.

Sin embargo, .bind puede eliminarse de futuras versiones en cualquier momento. No hay ninguna razón para seguir usando .bind y todas las razones para preferir .on en su lugar.

ve en detalle $ bind vs $ on

More Interesting

¿Cuál ha sido su experiencia en el uso de Google Web Designer?

¿Las principales empresas de Internet utilizan herramientas de desarrollo web como Dreamweaver para construir sitios mediante arrastrar y soltar o codifican desde cero utilizando JS y HTML?

¿Cuál es el mejor instituto para recibir capacitación de desarrolladores web en Bangalore?

¿Es un sitio web con menos código y archivos mejor que uno con 100 archivos importados a través de una etiqueta de cabecera?

¿Aprender Python puro me da la mayor flexibilidad en el campo profesional en comparación con aprender HTML / CSS / JavaScript / PHP?

¿Cuáles son las bibliotecas más importantes del lado del cliente (HTML5 / CSS / JavaScript) y por qué?

¿Hay algún complemento de WordPress para redirigir todas las solicitudes de mi sitio a una URL preferida?

¿Cuál es la mejor manera de validar un formulario de contacto en un archivo HTML estático de una sola página?

Quiero comenzar una startup. ¿Puedo crear un sitio web en wix.com? ¿Es bueno para fines comerciales?

¿Dónde puedo encontrar el código CSS para navegaciones receptivas para la vista de teléfonos inteligentes como http://www.goodappstudio.com/ o http://www.apple.com/de/ipad-pro/ has?

¿Qué significa piratear un sitio web (piratear un servidor o centro de datos del sitio web)?

¿Cómo uso Firebase para alojar aplicaciones Node.js?

¿Qué base de datos debo usar?

¿Qué más puedes hacer con Ruby, excepto usar su marco Rails?

¿Qué es un desarrollador fullstack?