Az event objektum
Az event objektum akkor jön létre, amikor egy esemény bekövetkezik, és információt tartalmaz róla. Amikor egy esemény bekövetkezik, az event objektum átadódik az eseménykezelő függvénynek.
Az event objektum tulajdonságai és metódusai
Az alábbi táblázat az event objektum tulajdonságait és metódusait, valamint azok leírását tartalmazza:
| Név | Leírás |
|---|---|
event.currentTarget |
Az aktuális DOM elem az esemény bubbling fázisában. Ez a tulajdonság általában megegyezik a függvény this értékével.
|
event.data |
Opcionális paraméter. Az adatobjektum, amely átadódik az eseménymetódusnak, amikor a végrehajtható kezelőt csatoljuk. |
event.delegateTarget |
Az az elem, amelyhez az éppen meghívott jQuery eseménykezelő volt csatolva. Ez a tulajdonság a leginkább delegált eseményeknél hasznos, amikor a kezelő egy felmenőhöz van kötve a kezelt elemnek. Nem delegált kezelők esetén, amelyek közvetlenül az elemhez vannak kötve, az event.delegateTarget értéke megegyezik az event.currentTarget értékével.
|
event.isDefaultPrevented |
A metódus ellenőrzi, hogy meghívásra került-e az event.preventDefault metódus erre az eseményobjektumra.
|
event.isImmediatePropagationStopped |
A metódus ellenőrzi, hogy meghívásra került-e az event.stopImmediatePropagation metódus erre az eseményobjektumra.
|
event.isPropagationStopped |
A metódus ellenőrzi, hogy meghívásra került-e az event.stopPropagation metódus erre az eseményobjektumra.
|
event.isPropagationStopped |
A metódus ellenőrzi, hogy meghívásra került-e az event.stopPropagation metódus erre az eseményobjektumra.
|
event.metaKey |
A metódus ellenőrzi, hogy a META billentyű le volt-e nyomva az esemény bekövetkeztekor. A platformtól függően a billentyű eltérő lehet. true vagy false értéket ad vissza.
|
event.namespace |
Az esemény meghívásakor megadott névtér. Ez a tulajdonság hasznos lehet a bővítmények készítői számára, akiknek feladatai a használt névtértől függenek. |
event.pageX |
Megmutatja az egér pozícióját a dokumentum bal széléhez képest. |
event.pageY |
Megmutatja az egér pozícióját a dokumentum felső széléhez képest. |
event.preventDefault |
Ha ezt a metódust meghívják, akkor az esemény alapértelmezett művelete nem fog végrehajtódni. Például egy linkre kattintás nem vezet új URL-re. Annak ellenőrzésére, hogy ez a metódus meghívásra került-e, használhatjuk az event.isDefaultPrevented metódust.
|
event.relatedTarget |
Visszaad egy másik DOM elemet, amely részt vesz az eseményben, ha van ilyen. A mouseout esetén megmutatja, hogy melyik elemre mutat az egér, a mouseover esetén, hogy melyik elemről vitték el az egérkurzort.
|
event.result |
Az utolsó érték, amelyet a bekövetkezett esemény kezelője visszaadott, és amely nem undefined. A tulajdonság hasznos lehet saját események értékeinek megszerzéséhez.
|
event.stopImmediatePropagation |
Megszünteti az elemhez kapcsolódó fennmaradó eseménykezelők működését, és megakadályozza, hogy az esemény bubblingeljen felfelé a DOM fában. Ha egyszerűen csak meg akarjuk akadályozni, hogy az esemény bubblingeljen a felmenő elemekig, de más eseménykezelők működését engedélyezni akarjuk, használhatjuk az event.stopPropagation metódust. Használja az event.isImmediatePropagationStopped metódust annak ellenőrzésére, hogy meghívásra került-e az event.stopImmediatePropagation erre az eseményobjektumra.
|
event.stopPropagation |
Megakadályozza, hogy az esemény bubblingeljen felfelé a DOM fában. Ne feledje, hogy más kezelők továbbra is működni fognak erre az elemre. Ez a metódus a trigger metódussal kiváltott saját eseményekre is működik. Annak ellenőrzésére, hogy ez a metódus meghívásra került-e, használja az event.isPropagationStopped metódust.
|
event.target |
A DOM elem, amely kiváltotta az eseményt. Ez lehet az az elem, amelyik regisztrálva van az eseményre, vagy annak egy leszármazottja. Nagyon hasznos az event.target és a this összehasonlítása az esemény bubblingelésének meghatározásához. A tulajdonság hasznos eseménydelegáláskor, amikor az események bubblingelnek.
|
event.timeStamp |
Az idő különbség milliszekundumban a böngésző által az esemény létrehozásának időpontja és 1970. január 1. között. A tulajdonság hasznos lehet az esemény teljesítményének meghatározásához az event.timeStamp értékeinek különbségének megszerzésével a kódban lévő két időpontban. Ha csak az aktuális időt szeretné megkapni az eseménykezelőn belül, használja a getTime metódust.
|
event.type |
Ebben a tulajdonságban az esemény típusa van megadva. |
event.which |
Ez a tulajdonság azt jelzi, hogy melyik billentyű vagy egérgomb volt lenyomva. Egér esetén: 1 - bal gomb, 2 - görgő, 3 - jobb gomb. Használja az event.which tulajdonságot az event.button helyett.
|
Az event objektum egyéb tulajdonságai
Vannak más tulajdonságok is, amelyek másolódnak az event objektumba:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Ahhoz, hogy a fent felsoroltakon kívüli tulajdonságokhoz hozzáférjünk, használhatjuk az event.originalEvent objektumot.
Példa
Írjuk ki egy div-be, hogy mely billentyűk lettek lenyomva:
<input id="test" value="írj valamit">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Példa
Írjuk ki egy div-be, hogy melyik tagra kattintunk:
<body>
<div id="text"></div>
<div>
<p>
<strong><span>kattints</span></strong>
</p>
</div>
</body>
span, strong, p {
display: block;
padding: 10px;
border: 1px solid black;
}
$('body').click(function(event) {
$('#text').html('kattintás: ' + event.target.nodeName);
});
Lásd még
-
a
onmetódus,
amely lehetővé teszi egy eseménykezelő hozzárendelését egy elemhez -
a
triggermetódus,
amely lehetővé teszi az elemhez kötött összes eseménykezelő elindítását egy adott típusú eseményhez -
a
triggerHandlermetódus,
amely lehetővé teszi az elemhez kötött összes eseménykezelő elindítását - jQuery események