Обект 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.
Пример
Нека да извеждаме в div - кои клавиши са били натиснати:
<input id="test" value="type something">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Пример
Нека да извеждаме в div - върху кой таг сме кликнали:
<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