|
64 | 64 | - `event.target` -- это "целевой" элемент, на котором произошло событие, в процессе всплытия он неизменен. |
65 | 65 | - `this` -- это "текущий" элемент, до которого дошло всплытие, на нём сейчас выполняется обработчик. |
66 | 66 |
|
67 | | -Например, если стоит только один обработчик `form.onclick`, то он "поймает" все клики внутри формы. Где бы ни был клик внутри –- он всплывёт до элемента `<form>`, на котором сработает обработчик. |
| 67 | +Например, если стоит только один обработчик `form.onclick`, то он "поймает" все клики внутри формы. Где бы ни был клик внутри -- он всплывёт до элемента `<form>`, на котором сработает обработчик. |
68 | 68 |
|
69 | | -При этом внутри обработчика`form.onclick`: |
| 69 | +При этом внутри обработчика `form.onclick`: |
70 | 70 |
|
71 | | -- `this` (`=event.currentTarget`) всегда будет элемент `<form>`, так как обработчик сработал на ней. |
| 71 | +- `this` (=`event.currentTarget`) всегда будет элемент `<form>`, так как обработчик сработал на ней. |
72 | 72 | - `event.target` будет содержать ссылку на конкретный элемент внутри формы, на котором произошёл клик. |
73 | 73 |
|
74 | 74 | Попробуйте сами: |
75 | 75 |
|
76 | 76 | [codetabs height=220 src="bubble-target"] |
77 | 77 |
|
78 | | -Возможна и ситуация, когда `event.target` и `this` -- один и тот же элемент, например, если клик был непосредственно на самом элементе `<form>`, не на его подэлементе. |
| 78 | +Возможна и ситуация, когда `event.target` и `this` -- один и тот же элемент, например, если клик был непосредственно на самом элементе `<form>`, а не на его подэлементе. |
79 | 79 |
|
80 | 80 | ## Прекращение всплытия |
81 | 81 |
|
@@ -183,7 +183,7 @@ elem.addEventListener(..., true) |
183 | 183 | 2. `P` (фаза цели, срабатывают обработчики, установленные и на погружение и на всплытие, так что выведется два раза) |
184 | 184 | 3. `DIV` -> `FORM` -> `BODY` -> `HTML` (фаза всплытия, второй обработчик) |
185 | 185 |
|
186 | | -Существует свойство `event.eventPhase`, содержащее номер фазы, на которой событие было поймано. Но оно используется редко, мы обычно и так знаем об этом в обработчике. |
| 186 | +Существует свойство `event.eventPhase`, содержащее номер фазы, на которой событие было поймано. Но оно используется редко, -- мы обычно и так знаем об этом в обработчике. |
187 | 187 |
|
188 | 188 | ```smart header="Чтобы убрать обработчик `removeEventListener`, нужна та же фаза" |
189 | 189 | Если мы добавили обработчик вот так `addEventListener(..., true)`, то мы должны передать то же значение аргумента `capture` в `removeEventListener(..., true)`, когда снимаем обработчик. |
|
0 commit comments