evtWrapper – обертка для объекта event

Как известно объект event у Internet Explorer является свойством window, а у остальных браузеров он передается как первый аргумент в функцию/метод обрабатывающий событие. При подписке на события при помощи JS-wrapper ваш метод, подписанный на событие, получит в качестве первого аргумента специальный объект обертку объекта event. Этот объект будет всегда передаваться первым аргументом, независимо от используемого браузера и будет содержать ссылку на объект event и ряд дополнительных свойств и методов описанных ниже.

Для подписки на события всех объектов рекомендуется использовать метод addListener у обертки этих элементов. У обертки объектов window и document также есть аналогичный метод addListener для подписки на любые события этих объектов, но кроме того, есть еще два специальных метода: setOnloadListener и setOnUnloadListener.

Кроме всех вышеперечисленных методов есть еще функция, использование которой не рекомендуется: eventProcessor(html-element, event, object, method, parameters).

{strip}
Основные свойства
Свойство Описание
evt ссылка на объект event.
elmWr ссылка на wrapper элемента, на котором произошло событие.
Дополнительные свойства
Свойство Описание
eventStatus запрещено/разрешено действие, связанное с событием (только для чтения).
bubbleStatus запрещено/разрешено просачивание (только для чтения).
absX координата X события, относительно документа.
absY координата Y события, относительно документа.
relX координата X события, относительно объекта вызвавшего событие.
relY координата X события, относительно объекта вызвавшего событие.
keyCode код служебной клавиши (При событии onkeypress).
charCode код символа (При событии onkeypress).
bv объект browserVersion.
Методы evtWrapper
Метод Описание
eventDrop запретить действие, выполняемое после завершения JavaScript.
stopBubbling запретить просачивание.
{/strip}

Свойство evt

Синтаксис: объект.evt;

Значением свойства evt является ссылка на объект event. Независимо от используемого браузера обратиться к объекту event можно через данное свойство. Но при прямом обращении к этому объекту следует учитывать, что некоторые свойства этого объекта существенно различаются в разных браузерах.

Свойство elmWr

Синтаксис: объект.elmWr;

Значением свойства elmWr является ссылка на wrapper объекта, на котором произошло событие.

Свойство eventStatus

Синтаксис: объект.eventStatus;

При помощи свойства eventStatus можно проверить будет ли выполняться запрет основного действия по завершению JavaScript. В исходном состоянии значение этого свойства true, а после выполнения метода eventDrop его значение меняется на false.

Свойство bubbleStatus

Синтаксис: объект.bubbleStatus;

При помощи свойства bubbleStatus можно проверить будет ли выполняться запрет "просачивания". В исходном состоянии значение этого свойства true, а после выполнения метода stopBubbling его значение меняется на false.

Свойство absX

Синтаксис: объект.absX;

Значением свойства absX является координата X события, относительно документа. Как правило, большинство событий связано с мышью, поэтому в таких случаях данное свойство будет содержать координату курсора мыши.

Свойство absY

Синтаксис: объект.absY;

Значением свойства absY является координата Y события, относительно документа. Как правило, большинство событий связано с мышью, поэтому в таких случаях данное свойство будет содержать координату курсора мыши.

Свойство relX

Синтаксис: объект.relX;

Значением свойства relX является координата X события, относительно объекта, на котором произошло событие. Как правило, большинство событий связано с мышью, поэтому в таких случаях данное свойство будет содержать координату курсора мыши.

Свойство relY

Синтаксис: объект.relY;

Значением свойства relY является координата Y события, относительно объекта, на котором произошло событие. Как правило, большинство событий связано с мышью, поэтому в таких случаях данное свойство будет содержать координату курсора мыши.

Свойство keyCode

Синтаксис: объект.keyCode;

Значением свойства keyCode является код нажатой служебной клавиши для события "onkeypress" или для других подобных событий, связанных с нажатием клавиш. В FireFox возможно получение кодов всех возможных клавиш, а в IE этот список ограничен. Позже здесь будет выложена таблица кодов.

Свойство charCode

Синтаксис: объект.charCode;

Значением свойства charCode является код нажатой обычной алфавитно-цифровой клавиши для события "onkeypress" или для других подобных событий, связанных с нажатием клавиш. Позже здесь будет выложена таблица кодов.

Свойство bv

Синтаксис: объект.bv

Значение свойства bv является объектом browserVersion.

Метод eventDrop

Синтаксис: объект.eventDrop(doNothing); Аргументы: value — булево значение

Метод eventDrop служит для запрета действие выполняемых после завершения JavaScript. Например, если событием является Submit формы или клик по ссылке, то после выполнения данного метода submit или переход по ссылке выполняться не будет.

Метод stopBubbling

Синтаксис: объект.stopBubbling(doNothing); Аргументы: value — булево значение

Метод stopBubbling служит для запрета просачивания. Событие может передаваться от самого "глубокого" объекта к его предку - Bubbling либо в обратном направлении - Capturing. Эти понятия настолько обширны, что я, пожалуй, не смогу описать их подробно в рамках данной инструкции. Вы можете прочитать о них, например, здесь. В двух словах скажу только, что самый популярный на сегодняшний день браузер Internet Explorer поддерживает пока только Bubbling, поэтому для обеспечения кроссбраузерности в рамках js-wrapper я рассматриваю только этот порядок передачи событий. Теперь возвращаясь к рассматриваемому нами методу, могу сказать, что stopBubbling запрещает передачу события родительскому объекту.

Другими словами, например, у вас подписаны на событие onclick, элемент body и какой-нибудь div в него входящий. Вам надо чтобы при клике на div это событие не передавалось дальше на body, то при вызове обработчика события элемента div вам надо в нем выполнить evtWr.stopBubbling();, где evtWr - обертка нашего объекта event.