Ver índice de contenidos del libro

9.6. Utilizar la delegación de eventos

La delegación de eventos permite vincular un controlador de evento a unelemento contenedor (por ejemplo, una lista desordenada) en lugar de múltiples elementos contenidos (por ejemplo, los ítems de una lista).jQuery realiza este trabajo fácil a través de $.fn.live y $.fn.delegate. En lo posible, es recomendable utilizar .fn.delegate en lugar de .fn.live, ya que elimina la necesidad de una selección y su contexto explicito reduce la carga en aproximadamente un 80%.

Además, la delegación de eventos permite añadir nuevos elementos contenedores a la página sin tener que volver a vincular sus controladores de eventos.

// mal (si existen muchos items en la lista)
$('li.trigger').click(handlerFn);
 
// mejor: delegación de eventos con $.fn.live
$('li.trigger').live('click', handlerFn);
 
// mucho mejor: delegación de eventos con $.fn.delegate
// permite especificar un contexto de forma fácil
$('#myList').delegate('li.trigger', 'click', handlerFn);