Obiectul event
Obiectul event este generat la declanșarea
unui eveniment și conține informații despre acesta. Când apare
un eveniment, obiectul event este transmis
funcției de gestionare.
Proprietăți și metode ale obiectului event
Mai jos în tabel sunt indicate proprietățile și metodele
obiectului event și descrierea acestora:
| Nume | Descriere |
|---|---|
event.currentTarget |
Elementul DOM curent în etapa de bubbling a evenimentului. De obicei
această proprietate este echivalentă cu this din funcție.
|
event.data |
Parametru opțional. Obiectul de date transmis metodii evenimentului la atașarea gestionarului executabil. |
event.delegateTarget |
Elementul căruia i-a fost atașat gestionarul de evenimente jQuery
tocmai apelat. Această proprietate este cea mai utilă
în evenimentele delegative, când gestionarul este legat de
un strămoș al elementului gestionat. Pentru gestionarii
non-delegați, legați direct de element,
valoarea event.delegateTarget corespunde
valorii event.currentTarget.
|
event.isDefaultPrevented |
Metoda verifică dacă a fost apelată metoda
event.preventDefault
pentru acest obiect eveniment.
|
event.isImmediatePropagationStopped |
Metoda verifică dacă a fost apelată metoda
event.stopImmediatePropagation
pentru acest obiect eveniment.
|
event.isPropagationStopped |
Metoda verifică dacă a fost apelată metoda
event.stopPropagation
pentru acest obiect eveniment.
|
event.isPropagationStopped |
Metoda verifică dacă a fost apelată metoda
event.stopPropagation
pentru acest obiect eveniment.
|
event.metaKey |
Metoda verifică dacă a fost apăsată tasta
META în momentul declanșării
evenimentului. În funcție de platformă, tasta
poate diferi. Returnează true sau
false.
|
event.namespace |
Spațiul de nume, specificat la momentul apelării evenimentului. Această proprietate se poate dovedi utilă pentru autorii de plugin-uri, ale căror sarcini depind de spațiul de nume utilizat. |
event.pageX |
Aranjează poziția mouse-ului relativ la marginea stângă a documentului. |
event.pageY |
Aranjează poziția mouse-ului relativ la marginea de sus a documentului. |
event.preventDefault |
Dacă această metodă este apelată, atunci acțiunea
implicită pentru acest eveniment nu va fi
executată. De exemplu, click-ul pe un link
nu va duce la navigarea către un URL nou. Pentru
a verifica dacă această metodă a fost apelată,
se poate utiliza metoda
event.isDefaultPrevented.
|
event.relatedTarget |
Returnează alt element DOM care participă
la eveniment, dacă există. Pentru
mouseout arată pe ce
element este poziționat mouse-ul, pentru mouseover
de la ce element cursorul mouse-ului a fost îndepărtat.
|
event.result |
Ultima valoare returnată de gestionarul
evenimentului declanșat, care nu este egală cu
undefined. Proprietatea poate fi utilă
pentru obținerea valorilor evenimentelor proprii.
|
event.stopImmediatePropagation |
Anulează funcționarea tuturor gestionarilor rămași
ai evenimentelor, asociate cu elementul și previne
propagarea evenimentului în sus în arborele DOM. Pentru a
împiedica pur și simplu evenimentul să se propage până la
elementele strămoși, dar pentru a permite funcționarea altor
gestionari de evenimente, se poate utiliza metoda
event.stopPropagation. Utilizați metoda
event.isImmediatePropagationStopped pentru a
verifica dacă a fost apelat
event.stopImmediatePropagation pentru acest
obiect eveniment.
|
event.stopPropagation |
Împiedică propagarea evenimentului în sus în
arborele DOM. Amintiți-vă că ceilalți gestionari
vor continua să funcționeze pentru acest element. Această
metodă funcționează pentru evenimentele proprii, declanșate
cu metoda
trigger.
Pentru a verifica dacă această metodă a fost apelată,
utilizați event.isPropagationStopped.
|
event.target |
Elementul DOM care a inițiat evenimentul. Acesta poate
fi elementul înregistrat pentru eveniment sau
un descendent al său. Este foarte util să comparați
event.target și this, pentru a determina
propagarea evenimentului. Proprietatea este utilă la delegarea
evenimentelor, când evenimentele se propagă.
|
event.timeStamp |
Diferența de timp în milisecunde între
momentul creării evenimentului de către browser și
1 Ianuarie 1970. Proprietatea poate fi
utilă pentru determinarea performanței
evenimentului prin obținerea diferenței de valori
event.timeStamp pentru două momente
de timp în cod. Dacă doriți pur și simplu să
obțineți timpul curent în interiorul gestionarului
de evenimente, utilizați metoda
getTime.
|
event.type |
În această proprietate este indicat tipul evenimentului. |
event.which |
Această proprietate indică ce tastă
de la tastatură sau mouse a fost apăsată. Pentru mouse:
1 - butonul stâng, 2 - roata,
3 - butonul drept. Utilizați
event.which în loc de event.button.
|
Alte proprietăți ale obiectului event
Există și alte proprietăți care sunt copiate
în obiectul event:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Pentru a accesa proprietățile care nu sunt enumerate mai sus,
se poate utiliza obiectul event.originalEvent.
Exemplu
Să afișăm în div - ce taste au fost apăsate:
<input id="test" value="scrie ceva">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Exemplu
Să afișăm în div - pe ce etichetă am dat click:
<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);
});
Vezi și
-
metoda
on,
care permite atașarea unui gestionar de evenimente la un element -
metoda
trigger,
care permite declanșarea tuturor gestionarilor de evenimente, atașate la element pentru evenimentele de tipul specificat -
metoda
triggerHandler,
care permite declanșarea tuturor gestionarilor de evenimente, atașate la element - evenimente jQuery