No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Entendiendo eventos y tipos: Burbuja, Captura y Propagación

15/27
Recursos

¿Qué son los eventos en programación?

Los eventos son fundamentales en el desarrollo de software, permitiendo crear aplicaciones interactivas y dinámicas. Se definen como acciones o sucesos que ocurren en el entorno de una aplicación - desde un clic del ratón hasta el envío de un formulario. Los eventos desencadenan respuestas, que permiten a los desarrolladores configurar cómo debe comportarse la aplicación cada vez que ocurre algo específico.

AddEventListener: ¿Cómo funciona?

En el ámbito de los navegadores, el método AddEventListener es crucial. Este método ofrece a los desarrolladores la capacidad de escuchar eventos que ocurren en la página web y reaccionar ante ellos. Al usarlo puedes:

  • Detectar eventos específicos: como clics, teclas presionadas o movimientos del mouse.
  • Desencadenar funciones: que modifican elementos de la interfaz como cambiar texto, imágenes o enviar formularios automáticamente.
  • Aportar dinamismo a las páginas web: mejora la experiencia del usuario al hacerlas más interactivas.

Tipos de eventos comunes

Existe una variedad de eventos en programación web. Estos pueden ser:

  • Eventos de mouse: como clic y desplazamiento.
  • Eventos de teclado: que capturan las acciones del usuario al presionar teclas.
  • Eventos de ventana (Window): relacionados con la carga o cambio de tamaño de la ventana del navegador.
  • Eventos en formularios: como entrada de datos y envío del formulario.
  • Eventos táctiles: relevantes en dispositivos móviles, como toques y deslizamientos.

¿Cómo funciona el flujo de un evento?

Comprender el flujo de un evento es esencial para manejar adecuadamente el comportamiento de aplicaciones web. Este flujo se divide en tres etapas principales: Capturing, Target y Bubbling.

Capturing: ¿Qué es y cómo se inicia?

El proceso de Capturing comienza desde el objeto Window, el nivel más alto del DOM (Document Object Model). En esta fase, el evento desciende a través del árbol del DOM hasta llegar al elemento que lo disparó.

¿Qué sucede al llegar al Target?

El Target es el punto donde el evento se origina efectivamente. Es el elemento específico que inicializa el evento. Aquí es donde el desarrollador puede implementar cambios o ejecutar funciones que respondan al evento.

Bubbling: ¿Cómo se propaga el evento hacia arriba?

Tras alcanzar el Target, el evento inicia un proceso llamado Bubbling. En esta etapa, el evento asciende nuevamente hacia el objeto Window, permitiendo que otros elementos padres del Target reaccionen al evento si así se requiere. Este comportamiento es crucial cuando:

  • Se necesita que un elemento padre del Target realice una acción en respuesta al evento.
  • Se desea escuchar eventos en niveles superiores del DOM para manejar reajustes en la interfaz de manera más eficiente.

Entender este flujo permite optimizar cómo gestionamos eventos en las aplicaciones, asegurando que la experiencia del usuario sea fluida y reactiva.

Consejos prácticos para manejar eventos

  1. Prioriza el uso de addeventlistener: para mantener el código limpio y seguir el flujo natural de eventos.
  2. Planifica el flujo de eventos: para aprovechar las fases de Capturing y Bubbling y asegurar que los elementos reaccionan correctamente.
  3. Prueba y depura constantemente: usa herramientas de desarrollo en el navegador para depurar y mejorar el manejo de eventos.

En resumen, los eventos son piedras angulares del desarrollo de software interactivo. Comprender su mecánica te permite crear aplicaciones más versátiles y comprometidas con los usuarios. Continúa explorando y experimentando con eventos para maximizar tus habilidades de programación.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Estos son algunos de los eventos que encontre. ![](https://static.platzi.com/media/user_upload/image-c3a2fd35-5085-4e60-b374-513cac2f7de0.jpg) ![](https://static.platzi.com/media/user_upload/image-123958e1-5714-4447-810b-4126ad6a2411.jpg)
Si quieren profundizar un poco mas, les dejo este vídeo que me sirvió para entender mejor. <https://www.youtube.com/watch?v=myEsMzsJEFg>
Existen varios tipos de eventos en JavaScript, que son fundamentales para la manipulación del DOM y la interacción en aplicaciones web. Algunos de los más comunes son: 1. **Eventos de Mouse**: - `click`: Ocurre cuando se hace clic en un elemento. - `dblclick`: Ocurre cuando se hace doble clic en un elemento. - `mouseover`: Ocurre cuando el puntero del mouse entra en un elemento. 2. **Eventos de Teclado**: - `keydown`: Ocurre cuando se presiona una tecla. - `keyup`: Ocurre cuando se suelta una tecla. - `keypress`: Ocurre cuando se presiona y se mantiene una tecla. 3. **Eventos de Formulario**: - `submit`: Ocurre cuando se envía un formulario. - `change`: Ocurre cuando cambia el valor de un elemento de formulario. 4. **Eventos de Ventana**: - `resize`: Ocurre cuando se cambia el tamaño de la ventana. - `scroll`: Ocurre cuando se desplaza la barra de desplazamiento. 5. **Eventos Táctiles** (en dispositivos móviles): - `touchstart`: Ocurre cuando se toca la pantalla. - `touchend`: Ocurre cuando se deja de tocar la pantalla. Estos eventos permiten que el código responda a acciones del usuario, mejorando la interactividad de las páginas web.
Por si desean ver de forma visual el ejemplo <https://domevents.dev/>
Buenas, me quedó la duda respecto al bubbling. En el caso de la animación hay un SECOND GRANDCHILD. Si el target es el FIRST GRANDCHILD y el bubbling va subiendo del target hasta el window object, es decir no baja por todo el DOM, quiere decir eso que no es posible modificar algo en SECOND GRANDCHILD en este caso? Quisiera si alguien me puede aclarar esa duda. Entiendo que puedo modificar SECOND GRANDCHILD, pero entonces me falta una pieza en la explicación, por ejemplo que el bubbling va por todo el DOM y no sólo sube como se ve en la animación. Saludos y muchas gracias por leer este mensaje, doble gracias a quien me aclare la duda.
![](https://static.platzi.com/media/user_upload/imagen-03b126a3-1765-4df6-9e22-a7f33e376424.jpg)