Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / DHTML /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Обработка событий в DOM - Программирование от RIN.RU
Обработка событий в DOM



Обработчики событий: интерфейс EventListener


Поддержка :Нестандартная.
Соответствует стандарту.



Интерфейс EventListener соответствует обработчикам событий в DOM. Обработчик событий - это подпрограмма, которая вызывается всякий раз, когда происходит событие, для которого зарегистрирован данный обработчик. Активизация обработчика вызывается внутренним методом handleEvent:


Метод handleEvent


Синтаксис:  обработчик.handleEvent(evt)
Аргументы: evt - выражение типа Event


Поддержка :Нестандартная.
Соответствует стандарту.



Метод handleEvent вызывается в процессе обработки события evt. Пример обработчика события приведен в описании метода addEventListener.


Обработчики событий HTML 4.0


В HTML 4.0 обработчики событий задаются как атрибуты соответствующих элементов, например:



<BODY onclick="mouseClick()">





При таком подходе задание нового обработчика события заменяет его старый обработчик. DOM допускает регистрацию нескольких обработчиков для одного события, поэтому в нем произошел отказ от задания обработчиков в атрибутах. Однако, в целях совместимости все действующие реализации DOM поддерживают форму регистрации обработчиков событий в синтаксисе HTML. Она считается совпадающей с заданием обработчика методом addEventListener с аргументом useCapture, равным false. Например, приведенное выше задание обработчика событий эквивалентно оператору



document.body.addEventListener("click", mouseClick, false);





DOM не предусматривает доступа к контексту события для обработчиков прерываний, заданных через атрибуты элементов. Однако, в Gecko в момент вызова обработчика события создается объект event, соответствующий интерфейсу Event для данного события. Пример:



function checkKey(evt) {
var key = evt.which; // код нажатой клавиши
...
}


<BODY onkeydown="checkKey(event)">





Перечень событий HTML приведен в этом пункте.


События: интерфейс Event


Поддержка :Нестандартная.
Соответствует стандарту.



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


Свойства интерфейса Event
СвойствоИзменяемоеМодельОписание
bubblesНетDOM 2Просачивается ли данное событие.
cancelableНетDOM 2Отменяемо ли данное событие.
currentTargetНетDOM 2Узел, чьи обработчики событий сейчас активизируются.
eventPhaseНетDOM 2Текущая фаза обработки события.
targetНетDOM 2Узел, являющийся целью события.
timeStampНетDOM 2Время генерации события.
typeНетDOM 2Имя события.



Методы интерфейса Event
МетодМодельОписание
initEventDOM 2Инициализирует событие.
preventDefaultDOM 2Отменяет обработку события по умолчанию.
stopPropagationDOM 2Прекращает дальнейшее распространение события.



Свойство bubbles


Синтаксис:  событие.bubbles
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство bubbles возвращает true, если данное событие является просачивающимся, и false в противном случае.


Свойство cancelable


Синтаксис:  событие.cancelable
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство cancelable возвращает true, если данное событие является отменяемым, и false в противном случае.


Свойство currentTarget


Синтаксис:  событие.currentTarget
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство currentTarget возвращает объект EventTarget, соответствующий узлу, чьи обработчики событий сейчас активизируются. Это свойство особенно полезно при перехвате и просачивании событий.


Свойство eventPhase


Синтаксис:  событие.eventPhase
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство eventPhase возвращает текущую фазу обработки события, которая задается целым числом в соответствии со следующей таблицей:


НазваниеЗначениеОписание
CAPTURING_PHASE1Фаза обработки перехвата события.
AT_TARGET2Фаза активизации перехватчиков события узла.
BUBBLING_PHASE3Фаза обработки просачивания события.



Свойство target


Синтаксис:  событие.target
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство target возвращает объект EventTarget, соответствующий узлу, для которого это событие было сгенерировано.


Свойство timeStamp


Синтаксис:  событие.timeStamp
Изменяемое: нет


Поддержка :Не поддерживается.
Соответствует стандарту.



Свойство timeStamp возвращает объект DOMTimeStamp, соответствующий времени генерации данного события. Для некоторых операционных систем и типов событий это значение может быть недоступно; в таких случаях данное свойство должно возвращать 0.


Свойство type


Синтаксис:  событие.type
Изменяемое: нет


Поддержка :Соответствует стандарту.
Соответствует стандарту.



Свойство type возвращает название данного события в формате DOMString. Это название должно быть именем языка XML, не зависящим от регистра, но и MSHTML, и Gecko возвращают название события строчными буквами, например: "click", "keydown", "resize".


Метод initEvent


Синтаксис:  узел.initEvent(eventType, canBubble, isCancelable)
Аргументы: eventType - выражение типа DOMString
canBubble, isCancelable - логические выражения


Поддержка :Не поддерживается.
Соответствует стандарту.



Метод initEvent используется для инициализации параметров события, созданного методом createEvent. Он должен вызываться до того, как данное событие будет сгенерировано методом dispatchEvent, и изменяет только те параметры события, которые задаются его аргументами. Аргумент eventType задает название данного события в формате именем языка XML. Аргументы canBubble и isCancelable указывают соответственно, является ли данное событие просачивающимся и отменяемым.


Метод preventDefault


Синтаксис:  узел.preventDefault()


Поддержка :Не поддерживается.
Соответствует стандарту.



Метод preventDefault сообщает системе, что нужно отменить обработку данного события, принятую по умолчанию. Если событие не является отменяемым, то вызов этого метода игнорируется. Этот метод может быть вызван в любой фазе обработки события.


Метод stopPropagation


Синтаксис:  узел.stopPropagation()


Поддержка :Не поддерживается.
Соответствует стандарту.



Метод stopPropagation сообщает системе, что нужно прекратить распространение данного события. После его вызова завершается активация обработчиков событий текущего узла, и дальнейшее распространение события не происходит. Этот метод может быть вызван в любой фазе обработки события.


<<<  НазадВперед  >>>
 1  2  3  4  5  6  7  8 


 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь