У DOM майже всі події розповсюджуються через ієрархічне дерево елементів. Це означає, що коли ви взаємодієте з дочірнім елементом (наприклад, натискаєте кнопку), ця подія "спливає" вгору по дереву – спочатку обробляється саме на елементі-цілі, а потім – на його батьківських елементах. Такий механізм дозволяє реалізувати делегування подій та спрощує керування обробниками для складних інтерфейсів.

Приклад: Розповсюдження подій

Розглянемо простий приклад, де подія "click" спочатку обробляється на кнопці, а потім "спливає" до батьківського елемента (div):

https://stackblitz.com/edit/web-platform-jpk63zl4?devToolsHeight=33&file=index.html

Що відбувається при кліку на кнопку:

Фази розповсюдження подій

image.png

Розповсюдження подій складається з трьох основних фаз:

  1. Фаза захоплення (Capture Phase)
  2. Цільова фаза (Target Phase)
  3. Фаза спливання (Bubbling Phase)

Властивості event.target та event.currentTarget:

https://stackblitz.com/edit/web-platform-xcousecn?devToolsHeight=33&file=script.js