Использование блоков прослушивания событий

Блоки прослушивания событий определены в спецификации DOM2 Events, реализованной в Firefox, Opera и Safari, и поэтому работают только в этих Web-браузерах.

Методы установки и отмены блока прослушивания определены в интерфейсе EventTarget спецификации DOM2 Events. Этот интерфейс устанавливается для элемента, в котором обрабатывается событие.

Установить блок прослушивания события можно с помощью метода:

addEventListener(имя-события, имя-функции-обработчика,

перехват-события)

где имя-события задает строковое имя события, имя-функции-обработчика задает имя функции, которая будет обрабатывать событие для элемента. Параметр перехват-события задает булевское значение возможности (true) или отмены (false) перехвата события элементом-предком. В случае перехвата события обработка события выполняется сначала в обработчике для элемента-предка, а затем в обработчике событий данного элемента (если такой обработчик есть).

Задание метода

removeEventListener(имя-события, имя-функции-обработчика,

перехват-события)

удаляет блок прослушивания событий с заданными параметрами.

В Internet Explorer функции, аналогичные методам интерфейса EventTarget, выполняют методы attachEvent() и detachEvent(), также устанавливаемые для элемента документа, в котором обрабатывается событие.

Метод

attachEvent(имя-события, имя-функции-обработчика)

прикрепляет к событию с заданным именем заданную функцию – обработчик события (параметра перехват-события нет, поскольку в Internet Explorer перехват событий не определен).

Метод

detachEvent(имя-события, имя-функции-обработчика)

открепляет от события с заданным именем заданную функцию – обработчик события.

В отличие от имени-события в методах интерфейса EventTarget, имя-события в функциях attachEvent() и detachEvent() задается с префиксом "on".

Задание блока прослушивания, так же, как и определение функции-обработчика в предыдущем способе, должно быть выполнено до обработки Web-браузером элемента, для которого задана обработка события.

Пример 4.5.45. Использование блока прослушивания события:

1. При использовании блока прослушивания события щелчка мыши в Firefox, Opera и Safari функция b1Handle()в примере 4.5.44(1) примет следующий вид:

function b1Handle()

{

// Если Web-браузер - Internet Explorer

if(navigator.userAgent.indexOf("MSIE")!= -1)

// Прикрепление функции-обработчика

// для элемента b1

document.getElementById(

"b1").attachEvent("onclick", b1Event);

else

// Добавление блока прослушивания

// для элемента b1

document.getElementById("b1").addEventListener(

"click", b1Event, false);

}

2. Добавим в примере 4.5.44(2) блок прослушивания события щелчка мыши для всех элементов в теле документа:

// Если Web-браузер - Internet Explorer

if(navigator.userAgent.indexOf("MSIE")!= -1)

// Прикрепление функции-обработчика

// для события щелчка мышью в документе

document.attachEvent("onclick", clickEvent);

else

// Добавление блока прослушивания

// для события щелчка мышью в документе

document.addEventListener("click", clickEvent, false);

Функция clickEvent() является как функцией-обработчиком (в Internet Explorer), так и функцией, вызываемой блоком прослушивания события в Firefox, Opera и Safari.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: