JavaScript. Подробное руководство, 6-е издание, стр. 306

<b>pageX, pageY</b>

Если стандартный объект события не имеет этих свойств, но имеет свойства, определяющие координаты указателя мыши в видимой области в виде свойств

<b>clientX</b>
и
<b>clientY</b>
, jQuery вычислит координаты указателя мыши относительно начала документа и сохранит их в свойствах
<b>pageX</b>
и
<b>pageY</b>
.

<b>target, currentTarget, relatedTarget</b>

Свойство

<b>target</b>
ссылается на элемент документа, в котором возникло событие. Если это свойство в стандартном объекте события ссылается на текстовый узел, jQuery подставит ссылку на вмещающий объект
<b>Element</b>
. Свойство
<b>currentTarget</b>
ссылается на элемент, в котором был зарегистрирован текущий обработчик события. Значение этого свойства всегда должно совпадать со значением
<b>this</b>
.

Если значения свойств

<b>currentTarget</b>
и
<b>target</b>
не совпадают, следовательно, обрабатывается всплывшее событие и может оказаться полезным проверить элемент
<b>target</b>
с помощью метода
<b>is()</b>
(раздел 19.1.2):

<b>if ($(event.target).is(&quot;a&quot;)) return; // Игнорировать события.</b>

<b>                                     // сгенерированные в ссылках</b>

Свойство

<b>relatedTarget</b>
- ссылка на другой элемент, вовлеченный в события перехода, такие как «mouseover» и «mouseout». Например, для событий «mouseover» свойство
<b>relatedTarget</b>
будет ссылаться на элемент, который покинул указатель мыши при перемещении на элемент
<b>target</b>
. Если стандартный объект события не имеет свойства
<b>relatedTarget</b>
, но имеет свойства
<b>toElement</b>
и
<b>fromElement</b>
, свойство
<b>relatedTarget</b>
получает значение одного из этих свойств в зависимости от типа события.

<b>timeStamp</b>

Время возникновения события в миллисекундах, возвращаемое методом

<b>Date.getTime()</b>
. Библиотека jQuery сама устанавливает это свойство, чтобы обойти давнишнюю ошибку в Firefox.

<b>which</b>

Библиотека jQuery нормализует это нестандартное свойство события так, что оно определяет кнопку мыши или клавишу на клавиатуре, нажатие которой вызвало это событие. Для событий клавиатуры, если стандартный объект события не имеет свойства

<b>which</b>
, но имеет свойство
<b>charCode</b>
или
<b>keyCode</b>
, в свойство
<b>which</b>
будет записано значение свойства, которое определено. Для событий мыши, если свойство
<b>which</b>
отсутствует, но имеется свойство
<b>button</b>
, в свойство
<b>which</b>
будет записано значение, основанное на значении свойства
<b>button</b>
. О означает, что никакая кнопка не была нажата. 1 - была нажата левая кнопка, 2 -средняя кнопка и 3 - правая кнопка. (Обратите внимание, что в некоторых броузерах нажатие правой кнопки мыши не генерирует события.)

Кроме того, библиотека jQuery определяет следующие собственные поля в объекте

<b>Event</b>
, которые иногда могут оказаться полезными:

<b>data</b>

Если при регистрации обработчика события были указаны дополнительные данные (раздел 19.4.4), обработчик сможет получить к ним доступ с помощью этого поля.

<b>handler</b>

Ссылка на текущую функцию обработчика события.

<b>result</b>

Возвращаемое значение предыдущего обработчика этого события. Обработчики, не возвращающие ничего, не учитываются.

<b>originalEvent</b>

Ссылка на стандартный объект

<b>Event</b>
, созданный броузером.

19.4.4. Дополнительные способы регистрации обработчиков событий

Мы уже знаем, что в библиотеке jQuery имеется множество простых методов регистрации обработчиков событий. Внутри каждого из них вызывает один и тот же, более сложный метод

<b>bind(),</b>
который связывает обработчик с указанным типом события во всех элементах в объекте jQuery. Прямое использование метода
<b>bind()</b>
позволяет использовать дополнительные возможности механизма регистрации, недоступные в простых методах. [55](

В библиотеке jQuery термин «связывание» используется для обозначения регистрации обработчиков событий. Стандарт ECMAScript 5 и многие фреймворки на языке JavaScript определяют в объектах функций метод bind() (раздел 8.7.4) и используют этот термин для обозначения связи функций с объектами, относительно которых они вызываются. Версия метода Function. bind() в библиотеке jQuery является вспомогательной функцией с именем jQuery. ргоху(), которая описывается в разделе 19.7.

)

В простейшем случае методу

<b>bind()</b>
передаются строка с типом события в первом аргументе и функция обработчика события во втором. Простые методы регистрации обработчиков событий используют именно эту форму вызова метода
<b>bind().</b>
Вызов
<b>$('р').click(f),</b>
например, эквивалентен вызову:

<b>$('р').bind('click',f);</b>

Метод

<b>bind()</b>
может также вызываться с тремя аргументами. В этой форме вызова тип события передается в первом аргументе, а функция обработчика - в третьем. Во втором аргументе можно передать любое значение, и библиотека jQuery будет присваивать это значение свойству
<b>data</b>
объекта
<b>Event</b>
перед вызовом обработчика. Иногда это может пригодиться для передачи обработчику дополнительных данных без использования замыкания.