Аб'ект event
Аб'ект event генераваўся пры спрацоўванні
падзеі і ўтрымлівае інфармацыю пра яе. Пры з'яўленні
падзеі аб'ект event перадаецца ў
функцыю-апрацоўшчык.
Уласцівасці і метады аб'екта event
Ніжэй у табліцы паказаны ўласцівасці і метады
аб'екта event і іх апісанне:
| Назва | Апісанне |
|---|---|
event.currentTarget |
Бягучы DOM элемент на стадыі ўсплыцця падзеі. Звычайна
гэтая ўласцівасць эквівалентная this функцыі.
|
event.data |
Неабавязковы параметр. Аб'ект даных, які перадаецца ў метад падзеі пры прымацоўванні выконваемага апрацоўшчыка. |
event.delegateTarget |
Элемент, да якога быў прымацаваны толькі што выкліканы
jQuery апрацоўшчык падзеі. Гэтая ўласцівасць найбольш карысная
пры дэлегаваных падзеях, калі апрацоўшчык прывязаны да
продка апрацоўваемага элемента. Для недэлегаваных
апрацоўшчыкаў, прывязаных непасрэдна да элемента,
значэнне event.delegateTarget адпавядае
значэнню event.currentTarget.
|
event.isDefaultPrevented |
Метад правяраў ці быў выкліканы метад
event.preventDefault
для гэтага аб'екта падзеі.
|
event.isImmediatePropagationStopped |
Метад правяраў ці быў выкліканы метад
event.stopImmediatePropagation
для гэтага аб'екта падзеі.
|
event.isPropagationStopped |
Метад правяраў ці быў выкліканы метад
event.stopPropagation
для гэтага аб'екта падзеі.
|
event.isPropagationStopped |
Метад правяраў ці быў выкліканы метад
event.stopPropagation
для гэтага аб'екта падзеі.
|
event.metaKey |
Метад правяраў ці была націснутая клавіша
META у момант спрацоўвання
падзеі. У залежнасці ад платформы клавіша
можа адрознівацца. Вяртае true або
false.
|
event.namespace |
Прастора імёнаў, паказаная ў момант выкліку падзеі. Даная ўласцівасць акажацца карыснай для аўтараў плагінаў, задачы якіх залежаць ад выкарыстанай прасторы імёнаў. |
event.pageX |
Паказвае пазіцыю мышы адносна левага краю дакумента. |
event.pageY |
Паказвае пазіцыю мышы адносна верхняга краю дакумента. |
event.preventDefault |
Калі даны метад выкліканы, то дзеянне па
змаўчанні для дадзенай падзеі не будзе
выконвацца. Напрыклад націсканне на спасылку
не прывядзе да пераходу на новы URL. Для
таго, каб праверыць ці быў выкліканы гэты
метад, можна выкарыстаць метад
event.isDefaultPrevented.
|
event.relatedTarget |
Вяртае іншы DOM элемент, які ўдзельнічаў
у падзеі, калі такі маецца. Для
mouseout паказвае на які
элемент наведзена мыш, для mouseover
з якога элемента курсор мышы быў адведзены.
|
event.result |
Апошняе значэнне, якое вярнуў апрацоўшчык
спрацаваўшай падзеі, не роўнае
undefined. Уласцівасць можа быць карыснай
для атрымання значэнняў уласных падзей.
|
event.stopImmediatePropagation |
Адмяняе працу ўсіх астатніх апрацоўшчыкаў
падзей, звязаных з элементам і прадухіляе
ўсплыццё падзеі ўверх па DOM дрэве. Каб
проста забараніць падзеі ўсплываць да
элементаў-продкаў, але дазволіць працу іншых
апрацоўшчыкаў падзей, можна выкарыстаць метад
event.stopPropagation. Выкарыстоўвайце метад
event.isImmediatePropagationStopped, каб
праверыць ці быў выкліканы
event.stopImmediatePropagation для дадзенага
аб'екта падзеі.
|
event.stopPropagation |
Прадухіляе ўсплыццё падзеі ўверх па DOM
дрэве. Памятайце, што іншыя апрацоўшчыкі
працягнуць працаваць для дадзенага элемента. Гэты
метад працуе для ўласных падзей, выкліканых
з дапамогай метаду
trigger.
Каб праверыць ці быў выкліканы гэты метад,
выкарыстоўвайце event.isPropagationStopped.
|
event.target |
DOM элемент, які ініцыяваў падзею. Гэта можа
быць элемент зарэгістраваны для падзеі або
яго нашчадак. Вельмі карысна параўноўваць
event.target і this, для вызначэння
ўсплыцця падзеі. Уласцівасць карысная пры дэлегаванні
падзеі, калі падзеі ўсплываюць.
|
event.timeStamp |
Розніца ў часе ў мілісекундах паміж
момантамі стварэння падзеі браўзерам і
1 студзеня 1970 года. Уласцівасць можа быць
карыснай пры вызначэнні прадукцыйнасці
падзеі шляхам атрымання розніцы значэнняў
event.timeStamp для двух моментаў
часу ў кодзе. Калі вы проста хочаце
атрымаць бягучы час унутры апрацоўшчыка
падзеі, выкарыстоўвайце метад
getTime.
|
event.type |
У дадзенай уласцівасці паказаны тып падзеі. |
event.which |
Даная ўласцівасць паказвае якая клавіша
клавіятуры ці мышы была націснутая. Для мышы:
1 - левая кнопка, 2 - кола,
3 - правая кнопка. Выкарыстоўвайце
event.which замест event.button.
|
Іншыя ўласцівасці аб'екта event
Ёсць і іншыя ўласцівасці, якія капіруюцца
ў аб'ект event:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Каб атрымаць доступ да ўласцівасцей, не пералічаных вышэй,
можна скарыстацца аб'ектам event.originalEvent.
Прыклад
Давайце будзем выводзіць у дыв - якія клавішы былі націснутыя:
<input id="test" value="type something">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Прыклад
Давайце будзем выводзіць у дыв - на які тэг мы будзем клікаць:
<body>
<div id="text"></div>
<div>
<p>
<strong><span>click</span></strong>
</p>
</div>
</body>
span, strong, p {
display: block;
padding: 10px;
border: 1px solid black;
}
$('body').click(function(event) {
$('#text').html('clicked: ' + event.target.nodeName);
});
Глядзіце таксама
-
метад
on,
які дазваляе прывязаць апрацоўшчык падзей да элемента -
метад
trigger,
які дазваляе запусціць усе апрацоўшчыкі падзей, прывязаныя да элемента для падзей зададзенага тыпу -
метад
triggerHandler,
які дазваляе запусціць усе апрацоўшчыкі падзей, прывязаныя да элемента - падзеі jQuery