Obiekt event
Obiekt event jest generowany po wywołaniu
zdarzenia i zawiera informacje o nim. Po pojawieniu się
zdarzenia obiekt event jest przekazywany do
funkcji obsługi.
Właściwości i metody obiektu event
Poniżej w tabeli wskazano właściwości i metody
obiektu event oraz ich opis:
| Nazwa | Opis |
|---|---|
event.currentTarget |
Bieżący element DOM na etapie propagacji zdarzenia. Zazwyczaj
ta właściwość jest równoważna z this funkcji.
|
event.data |
Opcjonalny parametr. Obiekt danych przekazywany do metody zdarzenia podczas dołączania wykonywalnej procedury obsługi. |
event.delegateTarget |
Element, do którego został właśnie dołączony wywołany
procedura obsługi zdarzenia jQuery. Ta właściwość jest najbardziej przydatna
w zdarzeniach delegowanych, gdy procedura obsługi jest powiązana z
przodkiem obsługiwanego elementu. Dla nierdelegowanych
procedur obsługi, powiązanych bezpośrednio z elementem,
wartość event.delegateTarget odpowiada
wartości event.currentTarget.
|
event.isDefaultPrevented |
Metoda sprawdza, czy została wywołana metoda
event.preventDefault
dla tego obiektu zdarzenia.
|
event.isImmediatePropagationStopped |
Metoda sprawdza, czy została wywołana metoda
event.stopImmediatePropagation
dla tego obiektu zdarzenia.
|
event.isPropagationStopped |
Metoda sprawdza, czy została wywołana metoda
event.stopPropagation
dla tego obiektu zdarzenia.
|
event.isPropagationStopped |
Metoda sprawdza, czy została wywołana metoda
event.stopPropagation
dla tego obiektu zdarzenia.
|
event.metaKey |
Metoda sprawdza, czy został naciśnięty klawisz
META w momencie wywołania
zdarzenia. W zależności od platformy klawisz
może się różnić. Zwraca true lub
false.
|
event.namespace |
Przestrzeń nazw, określona w momencie wywołania zdarzenia. Ta właściwość okaże się przydatna dla autorów wtyczek, których zadania zależą od używanej przestrzeni nazw. |
event.pageX |
Pokazuje pozycję myszy względem lewej krawędzi dokumentu. |
event.pageY |
Pokazuje pozycję myszy względem górnej krawędzi dokumentu. |
event.preventDefault |
Jeśli ta metoda zostanie wywołana, to domyślne działanie
dla danego zdarzenia nie będzie
wykonane. Na przykład kliknięcie linku
nie spowoduje przejścia na nowy URL. Aby
sprawdzić, czy ta metoda została wywołana,
można użyć metody
event.isDefaultPrevented.
|
event.relatedTarget |
Zwraca inny element DOM, uczestniczący
w zdarzeniu, jeśli taki istnieje. Dla
mouseout pokazuje, na który
element jest najechane myszą, dla mouseover
z którego elementu kursor myszy został odsunięty.
|
event.result |
Ostatnia wartość, którą zwróciła procedura obsługi
wywołanego zdarzenia, nie równa
undefined. Właściwość może być przydatna
dla uzyskania wartości własnych zdarzeń.
|
event.stopImmediatePropagation |
Anuluje działanie wszystkich pozostałych procedur obsługi
zdarzeń, powiązanych z elementem i zapobiega
propagacji zdarzenia w górę drzewa DOM. Aby
po prostu zabronić zdarzeniu propagować do
elementów przodków, ale zezwolić na działanie innych
procedur obsługi zdarzeń, można użyć metody
event.stopPropagation. Użyj metody
event.isImmediatePropagationStopped, aby
sprawdzić, czy został wywołany
event.stopImmediatePropagation dla tego
obiektu zdarzenia.
|
event.stopPropagation |
Zapobiega propagacji zdarzenia w górę drzewa
DOM. Pamiętaj, że inne procedury obsługi
będą nadal działać dla tego elementu. Ta
metoda działa dla własnych zdarzeń, wywołanych
za pomocą metody
trigger.
Aby sprawdzić, czy ta metoda została wywołana,
użyj event.isPropagationStopped.
|
event.target |
Element DOM, który zainicjował zdarzenie. To może
być element zarejestrowany dla zdarzenia lub
jego potomek. Bardzo przydatne jest porównywanie
event.target i this, aby określić
propagację zdarzenia. Właściwość jest przydatna przy delegowaniu
zdarzenia, gdy zdarzenia propagują.
|
event.timeStamp |
Różnica czasu w milisekundach między
momentami utworzenia zdarzenia przez przeglądarkę a
1 Stycznia 1970 roku. Właściwość może być
przydatna przy określaniu wydajności
zdarzenia poprzez uzyskanie różnicy wartości
event.timeStamp dla dwóch momentów
czasu w kodzie. Jeśli po prostu chcesz
uzyskać bieżący czas wewnątrz procedury obsługi
zdarzenia, użyj metody
getTime.
|
event.type |
W tej właściwości wskazano typ zdarzenia. |
event.which |
Ta właściwość wskazuje, który klawisz
klawiatury lub myszy został naciśnięty. Dla myszy:
1 - lewy przycisk, 2 - kółko,
3 - prawy przycisk. Użyj
event.which zamiast event.button.
|
Inne właściwości obiektu event
Są też inne właściwości, które są kopiowane
do obiektu event:
altKey, button, buttons, cancelable,
char, charCode, clientX, clientY,
ctrlKey, detail, eventPhase, key,
keyCode, offsetX, offsetY, originalTarget,
screenX, screenY, shiftKey,
toElement, view.
Aby uzyskać dostęp do właściwości nie wymienionych powyżej,
można skorzystać z obiektu event.originalEvent.
Przykład
Wyświetlajmy w div - jakie klawisze były naciśnięte:
<input id="test" value="wpisz coś">
<div id="text"></div>
$('#test').on('keydown', function(event) {
$('#text').html(event.type + ": " + event.which);
});
Przykład
Wyświetlajmy w div - na który tag klikamy:
<body>
<div id="text"></div>
<div>
<p>
<strong><span>kliknij</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);
});
Zobacz też
-
metoda
on,
która pozwala powiązać procedurę obsługi zdarzeń z elementem -
metoda
trigger,
która pozwala uruchomić wszystkie procedury obsługi zdarzeń, powiązane z elementem dla zdarzeń określonego typu -
metoda
triggerHandler,
która pozwala uruchomić wszystkie procedury obsługi zdarzeń, powiązane z elementem - zdarzenia jQuery