JavaScript. Подробное руководство, 6-е издание
Шрифт:
Также важно значение, возвращаемое обработчиком
Важно понимать, что учитываются значения, возвращаемые обработчиками событий, только если обработчики зарегистрированы посредством установки свойств. Далее мы увидим, что обработчики, зарегистрированные с помощью
17.3.5. Порядок вызова
Для элемента документа или другого объекта можно зарегистрировать более одного обработчика одного и того же типа события. При возникновении этого события броузер вызовет все обработчики в порядке, определяемом следующими правилами:
• В первую очередь вызываются обработчики, зарегистрированные установкой свойства объекта или с помощью HTML-атрибута, если таковые имеются.
• Затем вызываются обработчики, зарегистрированные с помощью метода addEventListener, в порядке их регистрации. [45]
45
Стандарт «DOM Level 2» не определяет порядок вызова обработчиков, но все текущие броузеры вызывают обработчики в порядке их регистрации, а текущий проект стандарта «DOM Level 3» определяет именно такой порядок вызова.
• Обработчики, зарегистрированные с помощью метода
17.3.6. Распространение событий
Когда целью события является объект
После вызова обработчиков событий, зарегистрированных в целевом элементе, большинство событий «всплывают» вверх по дереву DOM. В результате вызываются обработчики в родителе целевого элемента. Затем вызываются обработчики, зарегистрированные в родителе родителя целевого элемента. Так продолжается, пока не будет достигнут объект
Способностью всплывать обладает большинство событий, возникающих в элементах документа. Заметным исключением являются события «focus», «blur» и «scroll». Событие «load», возникающее в элементах, также всплывает, но оно прекращает всплывать в объекте
Всплытие - это третья «фаза» распространения события. Вызов обработчика события в целевом объекте - это вторая фаза. Первая фаза протекает еще до вызова обработчиков целевого объекта и называется фазой «перехвата». Напомню, что метод
Фаза перехвата напоминает фазу всплытия, только событие распространяется в обратном направлении. В первую очередь вызываются перехватывающие обработчики объекта
Наличие фазы перехвата позволяет обнаруживать события еще до того, как они достигнут своей цели. Перехватывающий обработчик может использоваться для отладки или для фильтрации событий, чтобы в комплексе с приемом отмены события, описываемом ниже, предотвратить вызов обработчиков в целевом объекте. Одной из типичных областей применения фазы перехвата является реализация буксировки элементов мышью, когда событие перемещения указателя мыши должен обрабатывать буксируемый объект, а не документ, в пределах которого осуществляется буксировка. Пример реализации приводится в примере 17.2.
17.3.7. Отмена событий
В разделе 17.3.4 говорилось, что значение, возвращаемое обработчиком события, зарегистрированным как свойство, можно использовать для отмены действий, выполняемых броузером по умолчанию в случае этого события. В броузерах, поддерживающих метод
Текущий проект модуля «DOM Events» определяет в объекте Event свойство с именем
46
Объект события, определяемый в библиотеке jQuery (глава 19), вместо свойства имеет метод defaultPrevented.
Легенды и мифы Древнего Востока
Древний мир
Документальная литература:
биографии и мемуары
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
рейтинг книги
Александр Великий или Книга о Боге
Проза:
историческая проза
рейтинг книги
Андер Арес
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
рейтинг книги
Ричард Длинные Руки – эрцфюрст
Фантастика:
фэнтези
рейтинг книги
An ordinary sex life
Любовные романы:
современные любовные романы
love action
рейтинг книги
Место
Проза:
современная проза
рейтинг книги
Тайная история американской империи: Экономические убийцы и правда о глобальной коррупции
Документальная литература:
публицистика
рейтинг книги
Последний реанорец. Том IV
3. Высшая Речь
Фантастика:
фэнтези
рейтинг книги
Йога т4
рейтинг книги
Разбитое окно
8. Райм и Сакс
Детективы:
прочие детективы
рейтинг книги