Events propagate qua 3 phase: capturing (từ window xuống target), target, bubbling (từ target lên window).
- Mặc định addEventListener ở bubbling phase (useCapture = false).
- Capturing ít dùng nhưng xử lý trước bubbling. stopPropagation() dừng propagation, stopImmediatePropagation() dừng cả handlers cùng element.
Events propagate through 3 phases: capturing (from window down to target), target, and bubbling (from target up to window). addEventListener defaults to bubbling phase (useCapture = false).
Capturing is less used but fires before bubbling. stopPropagation() stops propagation; stopImmediatePropagation() also stops other handlers on the same element.