Objekt event
Objekt event se generira ob sprožitvi
dogodka in vsebuje informacije o njem. Ob pojavu
dogodka se objekt event posreduje v
funkcijo-obdelovalnik.
Lastnosti in metode objekta event
Spodaj v tabeli so navedene lastnosti in metode
objekta event in njihov opis:
| Ime | Opis |
|---|---|
event.currentTarget |
Trenutni DOM element na stopnji širjenja (bubbling) dogodka. Običajno
je ta lastnost enakovredna this funkcije.
|
event.data |
Izbirni parameter. Objekt podatkov, ki se prenese v metodo dogodka pri pritrditvi izvedljivega obdelovalnika. |
event.delegateTarget |
Element, na katerega je bil pravkar priklican
jQuery obdelovalnik dogodkov. Ta lastnost je najbolj uporabna
pri delegiranih dogodkih, ko je obdelovalnik vezan na
prednika obdelovanega elementa. Za nedelegirane
obdelovalnike, vezane neposredno na element,
je vrednost event.delegateTarget enaka
vrednosti event.currentTarget.
|
event.isDefaultPrevented |
Metoda preverja, ali je bila za ta objekt dogodka poklicana metoda
event.preventDefault.
|
event.isImmediatePropagationStopped |
Metoda preverja, ali je bila za ta objekt dogodka poklicana metoda
event.stopImmediatePropagation.
|
event.isPropagationStopped |
Metoda preverja, ali je bila za ta objekt dogodka poklicana metoda
event.stopPropagation.
|
event.isPropagationStopped |
Metoda preverja, ali je bila za ta objekt dogodka poklicana metoda
event.stopPropagation.
|
event.metaKey |
Metoda preverja, ali je bila ob sprožitvi
dogodka pritisnjena tipka
META. Glede na platformo se tipka
lahko razlikuje. Vrne true ali
false.
|
event.namespace |
Imenski prostor, določen ob klicu dogodka. Ta lastnost je uporabna za avtorje vtičnikov, katerih naloge so odvisne od uporabljenega imenskega prostora. |
event.pageX |
Prikaže položaj miške glede na levi rob dokumenta. |
event.pageY |
Prikaže položaj miške glede na zgornji rob dokumenta. |
event.preventDefault |
Če je ta metoda poklicana, se privzeto dejanje za
ta dogodek ne bo izvedlo. Na primer, klik na povezavo
ne bo povzročil prehoda na nov URL. Da
preverite, ali je bila ta metoda poklicana,
lahko uporabite metodo
event.isDefaultPrevented.
|
event.relatedTarget |
Vrne drug DOM element, ki sodeluje
v dogodku, če ta obstaja. Za
mouseout prikaže, na kateri
element je miška usmerjena, za mouseover
pa s katerega elementa je bil miškin kazalec umaknjen.
|
event.result |
Zadnja vrednost, ki jo je vrnil obdelovalnik
sproženega dogodka, ki ni enaka
undefined. Lastnost je lahko uporabna
za pridobivanje vrednosti lastnih dogodkov.
|
event.stopImmediatePropagation |
Prekliče delovanje vseh preostalih obdelovalnikov
dogodkov, povezanih z elementom, in prepreči
širjenje (bubbling) dogodka navzgor po DOM drevesu. Če želite
preprosto prepovedati dogodku, da se širi do
elementov-prednikov, vendar dovoliti delovanje drugih
obdelovalnikov dogodkov, lahko uporabite metodo
event.stopPropagation. Uporabite metodo
event.isImmediatePropagationStopped, da
preverite, ali je bil za ta objekt dogodka poklican
event.stopImmediatePropagation.
|
event.stopPropagation |
Prepreči širjenje (bubbling) dogodka navzgor po DOM
drevesu. Ne pozabite, da bodo drugi obdelovalniki
nadaljevali z delom za ta element. Ta
metoda deluje za lastne dogodke, sprožene
z metodo
trigger.
Če želite preveriti, ali je bila ta metoda poklicana,
uporabite event.isPropagationStopped.
|
event.target |
DOM element, ki je sprožil dogodek. To je lahko
element, registriran za dogodek, ali
njegov potomec. Zelo koristno je primerjati
event.target in this za določitev
širjenja (bubbling) dogodka. Lastnost je uporabna pri delegiranju
dogodka, ko se dogodki širijo (bubbling).
|
event.timeStamp |
Časovna razlika v milisekundah med
trenutkom, ko je brskalnik ustvaril dogodek, in
1. januarjem 1970. Lastnost je lahko
uporabna pri določanju zmogljivosti
dogodka z pridobivanjem razlike vrednosti
event.timeStamp za dva trenutka
časa v kodi. Če želite preprosto
pridobiti trenutni čas znotraj obdelovalnika
dogodka, uporabite metodo
getTime.
|
event.type |
V tej lastnosti je navedena vrsta dogodka. |
event.which |
Ta lastnost določa, katera tipka
tipkovnice ali miške je bila pritisnjena. Za miško:
1 - levi gumb, 2 - kolesce,
3 - desni gumb. Uporabite
event.which namesto event.button.
|
Druge lastnosti objekta event
Obstajajo tudi druge lastnosti, ki so kopirane
v objekt event:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Za dostop do lastnosti, ki niso navedene zgoraj,
lahko uporabite objekt event.originalEvent.
Primer
Izpišimo v div - katere tipke so bile pritisnjene:
<input id="test" value="type something">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Primer
Izpišimo v div - na katero oznako smo kliknili:
<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);
});
Glejte tudi
-
metoda
on,
ki omogoča vezavo obdelovalnika dogodkov na element -
metoda
trigger,
ki omogoča zagon vseh obdelovalnikov dogodkov, vezanih na element za dogodke določene vrste -
metoda
triggerHandler,
ki omogoča zagon vseh obdelovalnikov dogodkov, vezanih na element - dogodki jQuery