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);