2011-12-22 21 views
36

Sé que se supone que el método on reemplaza live, delegate etc. Pero, ¿tiene algún sentido usarlo en los lugares donde está utilizando actualmente el evento click? Por ejemplo, en elementos que no se generan dinámicamente.jquery on vs click methods

Respuesta

28

No es específicamente la pena sustituir click(), como en la fuente de jQuery que convierte todos los controladores de eventos de acceso directo '' (como click(), keyup() etc.) a on("event", fn) de todos modos.

+2

De los documentos: 'Existen métodos abreviados para algunos eventos como .click() que se pueden usar para adjuntar o activar manejadores de eventos. Para obtener una lista completa de métodos abreviados, consulte la categoría de eventos'. Entonces la respuesta sería no, tal como dice @Rory, creo. –

+9

Así como no usó '.bind (" click ")' en lugar de '.click()' antes, no necesita usar '.on (" click ")' en vez de '.click() 'ahora. –

+1

Pero el método de taquigrafía .click() llamará a .on() y luego adjuntará el controlador de eventos en el nivel raíz y la fase de burbujeo atravesará toda la estructura desde el elemento hasta la raíz. Con .on() directamente, puede adjuntar el detector de eventos de clic al nodo padre inmediato y esto reducirá la fase de burbujeo, pero en el caso de un evento de clic, creo que será una mejora muy pequeña. – Samuel