Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Propagación y Delegación de Eventos Explicadas | Gestión de Eventos e Interacciones de Usuario en JavaScript
Maestría Avanzada en JavaScript

bookPropagación y Delegación de Eventos Explicadas

Propagación de eventos

La propagación de eventos describe cómo un evento se desplaza a través del DOM después de ser activado, y consta de tres fases distintas: Captura, Objetivo y Burbujeo.

Fase de captura (Capture)

El evento comienza en la raíz del árbol DOM (window) y desciende hacia el elemento objetivo. Los escuchadores de eventos en esta fase interceptan el evento mientras se desplaza hacia abajo.

Fase objetivo

El evento alcanza el elemento objetivo (el elemento que activó el evento). Aquí se ejecutan los escuchadores de eventos adjuntos al propio elemento objetivo.

Fase de burbujeo (Bubble)

Después de alcanzar el elemento objetivo, el evento comienza a ascender por el árbol DOM hasta la raíz (window), burbujeando a través de los elementos padre. Esta es la fase más utilizada, permitiendo que los elementos padre reaccionen a eventos activados por elementos hijo.

index.html

index.html

index.css

index.css

index.js

index.js

copy

El evento se propaga a través del DOM cuando se hace clic en el button. Primero, el evento se dispara en el button (fase de destino), luego burbujea hacia el div interno y finalmente al div externo (fase de burbujeo).

Delegación de eventos

La delegación de eventos es una técnica que aprovecha la propagación de eventos para gestionar eventos de elementos hijos utilizando un único escuchador de eventos en un elemento padre. En lugar de adjuntar escuchadores individuales a cada hijo, un elemento padre escucha los eventos que burbujean desde sus hijos. Este enfoque tiene dos ventajas principales:

  1. Rendimiento: Reducir la cantidad de escuchadores de eventos mejora el rendimiento, especialmente en situaciones donde los elementos se crean dinámicamente (por ejemplo, una lista que crece a medida que se agregan nuevos elementos);
  2. Mantenibilidad: La delegación de eventos simplifica el código, especialmente al trabajar con estructuras DOM grandes o contenido dinámico.
index.html

index.html

index.css

index.css

index.js

index.js

copy

En lugar de agregar escuchas de clic a cada elemento button de forma individual, se añade un solo escucha al elemento padre div. El evento se propaga desde los elementos button hasta el div, donde es gestionado.

Enfoque incorrecto

Enfoque correcto

Ejemplo práctico: Gestión de listas dinámicas

La delegación de eventos es ideal para gestionar interacciones en listas o tablas que pueden crecer con el tiempo (por ejemplo, al agregar tareas a una lista de pendientes o productos a un carrito de compras). A medida que se agregan o eliminan elementos, el contenedor principal (como ul o table) gestiona todas las interacciones, evitando la necesidad de adjuntar o eliminar escuchas en cada elemento hijo.

index.html

index.html

index.css

index.css

index.js

index.js

copy

1. ¿Qué es la propagación de eventos?

2. ¿En qué fase un evento asciende por el árbol DOM después de alcanzar su elemento objetivo?

3. ¿Por qué es útil la delegación de eventos, especialmente con contenido dinámico?

question mark

¿Qué es la propagación de eventos?

Select the correct answer

question mark

¿En qué fase un evento asciende por el árbol DOM después de alcanzar su elemento objetivo?

Select the correct answer

question mark

¿Por qué es útil la delegación de eventos, especialmente con contenido dinámico?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 2.22

bookPropagación y Delegación de Eventos Explicadas

Desliza para mostrar el menú

Propagación de eventos

La propagación de eventos describe cómo un evento se desplaza a través del DOM después de ser activado, y consta de tres fases distintas: Captura, Objetivo y Burbujeo.

Fase de captura (Capture)

El evento comienza en la raíz del árbol DOM (window) y desciende hacia el elemento objetivo. Los escuchadores de eventos en esta fase interceptan el evento mientras se desplaza hacia abajo.

Fase objetivo

El evento alcanza el elemento objetivo (el elemento que activó el evento). Aquí se ejecutan los escuchadores de eventos adjuntos al propio elemento objetivo.

Fase de burbujeo (Bubble)

Después de alcanzar el elemento objetivo, el evento comienza a ascender por el árbol DOM hasta la raíz (window), burbujeando a través de los elementos padre. Esta es la fase más utilizada, permitiendo que los elementos padre reaccionen a eventos activados por elementos hijo.

index.html

index.html

index.css

index.css

index.js

index.js

copy

El evento se propaga a través del DOM cuando se hace clic en el button. Primero, el evento se dispara en el button (fase de destino), luego burbujea hacia el div interno y finalmente al div externo (fase de burbujeo).

Delegación de eventos

La delegación de eventos es una técnica que aprovecha la propagación de eventos para gestionar eventos de elementos hijos utilizando un único escuchador de eventos en un elemento padre. En lugar de adjuntar escuchadores individuales a cada hijo, un elemento padre escucha los eventos que burbujean desde sus hijos. Este enfoque tiene dos ventajas principales:

  1. Rendimiento: Reducir la cantidad de escuchadores de eventos mejora el rendimiento, especialmente en situaciones donde los elementos se crean dinámicamente (por ejemplo, una lista que crece a medida que se agregan nuevos elementos);
  2. Mantenibilidad: La delegación de eventos simplifica el código, especialmente al trabajar con estructuras DOM grandes o contenido dinámico.
index.html

index.html

index.css

index.css

index.js

index.js

copy

En lugar de agregar escuchas de clic a cada elemento button de forma individual, se añade un solo escucha al elemento padre div. El evento se propaga desde los elementos button hasta el div, donde es gestionado.

Enfoque incorrecto

Enfoque correcto

Ejemplo práctico: Gestión de listas dinámicas

La delegación de eventos es ideal para gestionar interacciones en listas o tablas que pueden crecer con el tiempo (por ejemplo, al agregar tareas a una lista de pendientes o productos a un carrito de compras). A medida que se agregan o eliminan elementos, el contenedor principal (como ul o table) gestiona todas las interacciones, evitando la necesidad de adjuntar o eliminar escuchas en cada elemento hijo.

index.html

index.html

index.css

index.css

index.js

index.js

copy

1. ¿Qué es la propagación de eventos?

2. ¿En qué fase un evento asciende por el árbol DOM después de alcanzar su elemento objetivo?

3. ¿Por qué es útil la delegación de eventos, especialmente con contenido dinámico?

question mark

¿Qué es la propagación de eventos?

Select the correct answer

question mark

¿En qué fase un evento asciende por el árbol DOM después de alcanzar su elemento objetivo?

Select the correct answer

question mark

¿Por qué es útil la delegación de eventos, especialmente con contenido dinámico?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 4
some-alt