Delegando Eventos (delegate)

A la hora de crear listeners de eventos podemos incurrir en ralentizar la pagina si el numero de estos es muy grande. Por ejemplo, si queremos realizar una acción por cada elemento de la una lista haríamos lo siguiente:

$('ul li').click(function() {

/* ... ... ... */

});

El codigo anterior genera un listener por cada elemento de la lista. Si la lista es muy grande tendremos el problema de ralentizar la pagina.

Podemos solucionarlo con la delegacion de eventos. En jQuery usaremos delegate()

$('ul').delegate('li', 'click', function(){

/* ... ... ... */

});

Otra ventaja de utilizar delegate() es que cualquier otro <li> que se incluya dinamicamente respondera tambien al evento.

Delegando Eventos (delegate)