Suponiendo sólo quiero adjuntar un simple controlador de clic a un elemento, lo he hecho siempre esto:¿Debo utilizar .on() o .click() para adjuntar un controlador de eventos?
$("#mydiv").click(function() { ... });
En cuanto a los documentos de jQuery, parece que .on()
es el camino "recomendado" a asociar controladores de eventos y sustituye .bind()
, .delegate()
y .live()
:
Como de jQuery 1.7, el método .on() proporciona toda la funcionalidad requerida para la fijación de controladores de eventos. Para obtener ayuda sobre la conversión desde métodos de evento jQuery más antiguos, consulte .bind(), .delegate() y .live().
Y en los documentos de .click()
que dice:
Este método es un método abreviado para .bind ('clic', handler) en las dos primeras variaciones, y .trigger ("clic ') en el tercero.
Así que esto implica que .click()
está utilizando .bind()
que será obsoleto y reemplazado por .on()
, ¿verdad? ¿O es la implicación de que .click()
se mantendrá, pero en algún momento se convertirá en un atajo para .on("click")
?
Básicamente, mi pregunta es la siguiente ... Al escribir código jQuery hoy, debería usar:
Variant 1: $("#mydiv").click(function() { ... });
o:
Variant 2: $("#mydiv").on("click", function() { ... });
?
No tiene que preocuparse por el código heredado, es muy poco probable que eliminen completamente la abreviatura de clic. El controlador .on() es solo una forma más eficiente de vincular manejadores de eventos, de poder unir múltiples manejadores de eventos al mismo tiempo, ¡y agregar información adicional a un evento mapeado! – Khez