русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Распространение событий


Дата добавления: 2015-07-09; просмотров: 575; Нарушение авторских прав


 

В модели обработки событий DOM Level 0 броузер передает события тем элемен_ там документа, в которых они происходят. Если объект имеет соответствующий обработчик события, этот обработчик запускается. И больше ничего не происхо_ дит. В DOM Level 2 ситуация сложнее. В развитой модели обработки событий, когда событие происходит в элементе документа (известном как целевой узел со_ бытия), вызывается обработчик (или обработчики) событий целевого узла, но, кроме того, одну или две возможности обработать данное событие получает каж_ дый из элементов_предков этого элемента. Распространение события осуществ_ ляется в три этапа. Сначала на этапе перехвата события распространяются от объекта Document вниз по дереву документа к целевому узлу. Если у какого_либо из предков целевого элемента (но не у него самого) есть специально зарегистри_ рованный перехватывающий обработчик события, на данном этапе распростра_ нения события этот обработчик запускается. (Скоро мы узнаем, как регистриру_ ются обычные и перехватывающие обработчики событий.)

 

Следующий этап распространения события происходит в самом целевом узле: запускаются любые предусмотренные для этого обработчики событий, зарегист_ рированные непосредственно в целевом узле. Этот этап аналогичен обработке со_ бытий, предоставляемой моделью событий Level 0.

 

Третий этап распространения события – это этап всплывания, на котором собы_ тие распространяется, или «всплывает», обратно, вверх по иерархии документа от целевого узла к объекту Document. Если на этапе перехвата по дереву докумен_ та распространяются все события, то в этапе всплывания участвуют не все типы событий: например, событие submit не имеет смысла распространять вверх по до_ кументу за рамки элемента <form>, к которому оно относится. В то же время уни_ версальные события, такие как mousedown, могут быть интересны любому элемен_ ту документа, поэтому они всплывают по иерархии документа, вызывая любые предусмотренные для этого обработчики событий во всех предках целевого узла. Как правило, события ввода всплывают, а высокоуровневые семантические со_ бытия – нет. (Полный список всплывающих и невсплывающих событий приве_ ден в табл. 17.3 далее в этой главе.)



 

Любой обработчик может остановить дальнейшее распространение события, вы_ звав метод stopPropagation() объекта Event, представляющего данное событие. Более подробную информацию об объекте Event и его методе stopPropagation() можно найти далее в этой главе.

 

Некоторые события приводят к выполнению веб_броузером связанных с ними действий, предлагаемых по умолчанию. Например, когда в теге <a> происходит событие click, действием броузера, предлагаемым по умолчанию, является пере_ ход по гиперссылке. Такие действия по умолчанию выполняются только после завершения всех трех фаз распространения события, и любой обработчик, вы_


 

416 Глава 17. События и обработка событий

званный во время распространения события, имеет возможность отменить дей_ ствие по умолчанию, вызвав метод preventDefault() объекта Event.

 

Подобная схема распространения событий может показаться усложненной, но она обеспечивает важный механизм централизации кода обработки событий. Стандарт DOM Level 1 предоставляет доступ ко всем элементам документа и до_ пускает возникновение событий (таких как события mouseover) в любом из них. Это значит, что имеется намного больше мест, где могут быть зарегистрированы обработчики событий, чем в старой модели обработки событий Level 0. Предпо_ ложим, что вы хотите вызывать обработчик события при наведении указателя мыши на элемент <p> в вашем документе. Вместо регистрации обработчика собы_ тия onmouseover для каждого тега <p> можно зарегистрировать один обработчик события в объекте Document и в ходе распространения этого события обработать его либо на этапе перехвата, либо на этапе всплывания.

 

И еще одна важная деталь, относящаяся к распространению событий. В модели Level 0 можно зарегистрировать только один обработчик для определенного ти_ па события в определенном объекте. В то же время в модели Level 2 можно заре_ гистрировать произвольное количество функций_обработчиков для определен_ ного типа события в определенном объекте. Это также относится к предкам це_ левого узла события, чья функция или функции обработки вызываются в ходе перехвата и всплывания события в документе.

 



<== предыдущая лекция | следующая лекция ==>
Область видимости обработчиков событий | Регистрация обработчиков событий


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.275 сек.