Siedrix

RSS Twitter

Delegate y Live

Yo empecé a usar jQuery en la version 1.2.3 y desde entonces han salido varias actualizaciones para llegar a la versión 1.4.2, entre las mejoras que se han agregado se incluyen la creación de nuevos manejadores de eventos. Entre ellos los 2 de los que hablare hoy.

Generalmente yo haría algo como esto:

$(‘a’).each(function(){
     $(this).click(function(){
           //el código
     });
});

Lo cual nos permite a cada elemento de tag a le agrega un handler del evento click, lo cual no solo es lento por que a cada elemento de la pagina se tendrá que agregar un manejador del evento, si no que también tiene el problema de que al crear una nueva liga de manera dinámica, hay que asignarle la funcionalidad de nuevo.

Claramente este método no podía seguir siendo la mejor forma de hacer las cosas, entonces es bueno checar que han inventado los manejadores de eventos .live y en la nueva versión .delegate. Esta manera de funcionar aprovecha el “bubbling” de los eventos de javascript y nos permite evitar que se asigne tantas veces como sucede en el caso anterior y también funcionara para los nuevos elementos que se agreguen de manera dinámica.

$("body").delegate("a", "click", function(){
      //el código
});

Esto es equivalente a

$('.a’).live('click', function() {
      // el codigo
});

Esto nos permite generar un código mucho más rapido, mas sustentable y mucho mas practico. Que mas podemos pedir.

Related posts:

  1. Agregando historia a javascript
  2. Por que no me gusta CoffeeScript
  3. Marcando el código

Deja tu Opinión

Puedes agregar tags de HTML como: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">