The capture phase: The event object propagates through the target’s ancestors from the Window to the target’s parent. This phase is also known as the capturing phase.
The target phase: The event object arrives at the event object’s event target. This phase is also known as the at-target phase. If the event type indicates that the event doesn’t bubble, then the event object will halt after completion of this phase.
The bubble phase: The event object propagates through the target’s ancestors in reverse order, starting with the target’s parent and ending with the Window. This phase is also known as the bubbling phase.
A phase will be skipped if it is not supported, or if the event object’s propagation has been stopped. For example,
if the bubbles attribute is set to false, the bubble phase will be skipped,
if stopPropagation() has been called prior to the dispatch, all phases will be skipped