Chuck's Academy

Manipulación de DOM en JavaScript

Delegación de Eventos

La delegación de eventos es una técnica avanzada en la manipulación del DOM que nos permite gestionar eventos de una manera más eficiente. En lugar de adjuntar un escuchador de eventos a cada elemento que pueda generar un evento, se adjunta un único escuchador a un ancestro común. Este escuchador único puede entonces manejar los eventos desencadenados por los elementos hijos.

¿Por qué Usar la Delegación de Eventos?

La delegación de eventos es especialmente útil cuando se trabaja con elementos generados dinámicamente o cuando se necesita reducir el número de escuchadores de eventos en una página. Algunas de sus ventajas incluyen:

  • Mejora del rendimiento: Reducir el número de escuchadores de eventos que se deben adjuntar a los elementos.
  • Simplicidad en la gestión: Facilitar la gestión de eventos, especialmente cuando se añaden o eliminan elementos dinámicamente.

Cómo Funciona la Delegación de Eventos

La delegación de eventos aprovecha la técnica de propagación de eventos en el DOM, especialmente la fase de burbujeo. Durante esta fase, un evento se propaga desde el elemento que lo desencadenó hacia arriba a través de sus ancestros en el árbol DOM.

Ejemplo Básico de Delegación de Eventos

Supongamos que tenemos una lista de elementos y queremos manejar los clics en cualquier ítem de la lista usando un único escuchador de eventos.

html

En este ejemplo:

  1. Adjuntamos un único escuchador de eventos al ul (elemento padre).
  2. Cuando se hace clic en un li (elemento hijo), el evento burbujea hasta el ul.
  3. Usamos event.target para verificar si el elemento clickeado es un li.

Uso de matches y closest

Para trabajar con la delegación de eventos, dos métodos útiles son matches y closest.

  • matches(selector): Comprueba si el elemento invocante coincide con el selector especificado.
  • closest(selector): Devuelve el ancestro más cercano que coincide con el selector, o el propio elemento si ello coincide.

Ejemplo usando closest

html

Delegación de Eventos y Elementos Dinámicos

La delegación de eventos es muy útil cuando se trabaja con elementos creados dinámicamente, ya que el escuchador adjuntado al elemento padre podrá manejar eventos de los nuevos elementos sin necesidad de añadir nuevos escuchadores.

Ejemplo con elementos dinámicos

html

En este ejemplo, aunque los nuevos ítems se añaden dinámicamente a la lista, el único escuchador de eventos en el elemento padre ul puede manejar los clics en todos los ítems, incluidos los nuevos.

Conclusión

La delegación de eventos es una técnica poderosa y eficiente para manejar eventos en aplicaciones web, especialmente cuando se trabaja con componentes dinámicos o se busca optimizar el rendimiento. En los próximos capítulos, exploraremos temas como la manipulación de estilos y clases en el DOM y cómo navegar a través de los distintos nodos del DOM.


Pregúntame lo que sea