просмотров:178886

JavaScript :: Всплытие событий в js   10 августа 2016

Вы возможно думаете, что когда вы кликните на ячейку, то браузер будет знать что у вас есть обработчик на нажатии на ячейку и он будет вызван незамедлительно. Это абсолютно не верно. На самом деле, браузер не знает куда вы кликнули. Браузер будет определять местоположение клика следующими путями:

Захват: когда вы кликаете, браузер знает, что событие клика произошло. Он начинает с window (самый низкий уровень), затем идёт в document, затем html тэг, затем body, затем table... Он пытается достичь самого высокого уровня элемента, который только возможен. Это зовётся фазой "захвата" (первая фаза).

Цель: когда браузер достигнет самого элемента на котором был произведен клик, то браузер отметит если ли у этого элемента какие-либо прикрепленные обработчики. Если ничего нет, то браузер выполнил обработчик клика. Это называет фаза цели (вторая фаза).
Всплытие: после вызова обработчика, прикрепленного к "td", браузер начнёт своё путешествие обратно с window. Уровень за уровнем он будет проверять если ли на элементе обработчик на "click" и если обнаружит таковой - выполнит. Это и есть стадия всплытия (третья фаза). Заметьте, когда вы кликните на ячейку, будут исполнены все обработчики событий на click для всех родительских элементов.
 
просмотров:178886 | комметариев: 0

Оставить комментарий:    

Ваше имя:
 
Текст комментария:
 
+ 1 =