2011-11-03 11 views

Respuesta

4

$(el).on ofrece a los desarrolladores una forma unificada de vincular eventos para cualquier tipo de evento directo o delegado. También le permite enlazar más de un evento al mismo tiempo pasando un objeto (segundo ejemplo en el documentation)

También guarda algunas teclas, por lo que vale.

2

Con .on() puede enlazar más de una tipo de evento al mismo tiempo, por lo que no tiene que duplicar el código o crear una función separada si desea hacer lo mismo en varios eventos.

+0

También puede vincular una función a más de un tipo de evento con las otras funciones. Esta es una unificación del manejo de eventos, y también le permite asignar más de una función a más de un evento a través de la asignación. – JAAulde

+0

Claro, pero no con '.click()' que fue mencionado específicamente! – JJJ

+0

Ah, eso es cierto – JAAulde

0

Me parece que se está organizando para combinar/reemplazar las otras funciones de enlace de eventos ... ¡Una función para vincularlos a todos! (LOTR geekery ftw)

+0

suena una campana ... – roselan

1

Es mi entendimiento de que la nueva .on() es una combinación de funcionalidad tanto duplicado en .bind(), .delegate() y .live(). Es tanto una fusión de la API como una combinación de las implementaciones en una implementación más unificada.

2

$(el).click(...) es la abreviatura de $(el).bind('click', ...). Si compara el documentation for bind() con el documentation for on(), verá una serie de diferencias.

Esto es bastante bien resumido por el primer párrafo de las bind() docs:

Como de jQuery 1.7, el método .on() es el método preferido para unir controladores de eventos a un documento. Para versiones anteriores, el método .bind() se usa para conectar un controlador de eventos directamente a los elementos . Los manejadores se adjuntan a los elementos actualmente seleccionados en el objeto jQuery, por lo que esos elementos deben existir en el punto donde se produce la llamada a .bind(). Para una vinculación de eventos más flexible, consulte la discusión de la delegación de eventos en .on() o .delegate().

Cuestiones relacionadas