Объект события
В обработчик события, установленный с помощью jQuery, передаётся объект события, который соответствует W3C стандарту. Данный объект и объект, создаваемый браузером, - это два разных объекта, хотя они очень похожи.
Объекты одного события, создаваемые разными браузерами, всегда имеют незначительные отличия. Использование же в jQuery собственного объекта события (одинакового во всех браузерах) обеспечивает кроссбраузерность скриптов.
Конструктор Event()
В jQuery для создания объекта события используется конструктор Event()
. Вызов конструктора выполняется следующим образом:
jQuery.Event(имя_события[, свойства])
имя_события
- Строка, содержащая название события.
свойства
- Объект, значения свойств которого передаются в создаваемый объект события.
Вызов конструктора можно выполнять без оператора new
. Пример использования:
<html> <head> <title>Работа с событиями в jQuery</title> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <button>Кнопка</button> </body> </html> <script> $('button').on('click', function(event) { alert(event.button); }); /* Создание объекта события 'click' со свойством button = 2 */ var event = jQuery.Event('click', {button: 2}); /* Запуск созданного события */ $('button').trigger(event); </script>
Свойства объекта события
В стандартном браузерном объекте события наличие или отсутствие свойств определяется типом события, например, свойство key
доступно только в событиях клавиатуры. В jQuery объекты любых событий одинаковы и содержат одни и те же свойства, поэтому некоторые свойства могут иметь значение undefined
.
Свойства объекта event
altKey
- Была ли нажата клавиша
в момент срабатывания события. Имеет булевый тип.Alt
bubbles
- Будет ли событие всплывать. Имеет булевый тип.
button
- Информация о кнопке мыши, вызвавшей событие.
buttons
- Информация о всех нажатых кнопках мыши в момент срабатывания события.
cancelable
- Можно ли отменить стандартные действия браузера. Имеет булевый тип.
changedTouches
- Список объектов
Touch
, изменивших своё состояние в период от предыдущегоTouch
-события до текущего. clientX
- Горизонтальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно окна документа (относительно видимой области страницы).
clientY
- Вертикальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно окна документа (относительно видимой области страницы).
ctrlKey
- Была ли нажата клавиша
в момент срабатывания события. Имеет булевый тип.Ctrl
currentTarget
- Ссылка на текущий элемент DOM дерева, на котором в данный момент выполняется обработчик события. Для делегированных событий - это элемент, для которого делегируется обработчик.
data
- Ссылка на данные, указанные при установке обработчика.
delegateTarget
- Ссылка на элемент, на котором установлен выполняемый обработчик. Для неделегированных событий данное свойство равноценно
currentTarget
. eventPhase
- Стадия события: перехват, всплытие или стадия цели.
key
- Информация о нажатой клавише.
metaKey
- Была ли нажата клавиша
(для MacOS -Windows
) в момент срабатывания события. Имеет булевый тип.Command
namespace
- Строка, содержащая пространство имён, указанное при установке обработчика.
pageX
- Горизонтальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно всего документа, то есть эта координата не меняется при прокрутке страницы.
pageY
- Вертикальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно всего документа, то есть эта координата не меняется при прокрутке страницы.
result
- Последнее значение, возвращённое обработчиками текущего события.
screenX
- Горизонтальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно экрана монитора.
screenY
- Вертикальная координата указателя мыши на момент возникновения события. Координата отсчитывается относительно экрана монитора.
shiftKey
- Была ли нажата клавиша
в момент срабатывания события. Имеет булевый тип.Shift
target
- Ссылка на целевой элемент.
targetTouches
- Список объектов
Touch
, начавшихся на целевом элементе. timeStamp
- Точное время генерации события.
touches
- Список всех объектов
Touch
, независимо от их состояния или целевого элемента. type
- Строка, содержащая название события (
click
,keypress
и т.п.). view
- Ссылка на объект
window
, в котором произошло событие.
Методы объекта event
isDefaultPrevented()
- Возвращает значение
true
, если ранее был вызван методevent.preventDefault()
. В противном случае возвращаетfalse
. isImmediatePropagationStopped()
- Возвращает значение
true
, если ранее был вызван методevent.stopImmediatePropagation()
. В противном случае возвращаетfalse
. isPropagationStopped()
- Возвращает значение
true
, если ранее был вызван методevent.stopPropagation()
. В противном случае возвращаетfalse
. preventDefault()
- Отменяет стандартные действия браузера, выполняемые по умочанию.
stopImmediatePropagation()
- Остановка распространения события на следующие элементы и отмена всех невыполненных обработчиков текущего элемента.
stopPropagation()
- Остановка распространения события на следующие элементы. Обработчики текущего элемента выполняются полностью.
Если требуется получить доступ к другим свойствам и методам объекта события (не указанным выше), тогда можно воспользоваться браузерным объектом события. Он доступен в свойстве event.originalEvent
.