Event#
Wstęp#
Interfejs Event stanowi definicję Web IDL dla obiektów reprezentujących zdarzenia.
Zdarzenie # (event) umożliwia sygnalizację zajścia pewnych okoliczności. Przykładem może być zakończenie pobierania obrazu. Zdarzenie jest obiektem implementującym interfejs Event lub inny interfejs, który dziedziczy po interfejsie Event (np. interfejs UIEvent lub MouseEvent).
W interfejsie Event zdefiniowano polecenia, które dostarczają podstawowych informacji kontekstowych o zdarzeniu dla wszystkich uchwytów zdarzeń. Niektóre z tych poleceń pozwalają wpływać na kilka istotnych zachowań ściśle związanych z przepływem zdarzeń.
Każde zdarzenie jest powiązane z następującymi domyślnie nieaktywnymi flagami:
- flagą zatrzymania propagacji # (stop propagation flag)
- flagą natychmiastowego zatrzymania propagacji # (stop immediate propagation flag)
- flagą anulowania # (canceled flag)
- flagą zainicjowania # (initialized flag)
- flagą wysłania # (dispatch flag)
Każde zdarzenie musi być także powiązane z typem # (type) zwanym także typem zdarzenia (event type) i udostępnianym pod właściwością Event.type
tego zdarzenia.
Interfejs Event nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.
Zdarzenie można utworzyć za pomocą poleceń:
Właściwości Event#
Nazwa | Opis |
---|---|
Event.bubbles | Zwraca wartość true jeśli dane zdarzenie bąbelkuje, w przeciwnym razie wartość false . |
Event.cancelable | Zwraca wartość true jeśli domyślne akcje dla danego zdarzenia mogą zostać odwołane, w przeciwnym razie wartość false . |
Event.currentTarget | Zwraca obiekt będący aktualnym celem zdarzenia dla danego zdarzenia. |
Event.defaultPrevented | Zwraca wartość true jeśli domyślne akcje dla danego zdarzenia zostały odwołane, w przeciwnym razie wartość false . |
Event.eventPhase | Zwraca wartość liczbową 0, 1, 2 lub 3, w zależności od tego, która faza zdarzenia jest aktualnie przetwarzana dla danego zdarzenia. |
Event.isTrusted | Zwraca wartość true jeśli dane zdarzenie jest zaufane, w przeciwnym razie wartość false . |
Event.target | Zwraca obiekt będący celem zdarzenia dla danego zdarzenia. |
Event.timeStamp | Zwraca wartość liczbową reprezentującą ilość milisekund jakie upłynęły od 00:00:00 UTC 1 stycznia 1970 roku aż do chwili utworzenia danego zdarzenia. |
Event.type | Zwraca typu zdarzenia dla danego zdarzenia. |
Metody Event#
Nazwa | Opis |
---|---|
Event.initEvent() | Inicjuje dane zdarzenie. |
Event.preventDefault() | Przerywa wszystkie domyślne akcje związane z danym odwoływalnym zdarzeniem. |
Event.stopImmediatePropagation() | Przerywa dalszą propagację danego zdarzenia przez co obsługa aktualnych i kolejnych uchwytów zdarzeń zostaje zatrzymana. |
Event.stopPropagation() | Przerywa dalszą propagację danego zdarzenia przez co obsługa kolejnych uchwytów zdarzeń zostaje zatrzymana. |
Stałe Event#
Nazwa | Zapis dziesiętny | Zapis szesnastkowy | Znaczenie |
---|---|---|---|
NONE # | 0 | 0 | Zdarzenie nie zostało jeszcze wysłane lub wysyłanie zostało zakończone (wszystkie jego fazy dobiegły końca). |
CAPTURING_PHASE # | 1 | 1 | Aktualną fazą zdarzenia jest faza przechwytywania. |
AT_TARGET # | 2 | 2 | Aktualną fazą zdarzenia jest faza celu (czyli cel zdarzenia). |
BUBBLING_PHASE # | 3 | 3 | Aktualną fazą zdarzenia jest faza bąbelkowania. |
Inne Event#
Nazwa | Opis |
---|---|
new Event() | Konstruktor tworzący nowe zdarzenie. |
Interfejs Web IDL#
[Constructor(DOMString type, optional EventInit eventInitDict), Exposed=(Window,Worker)] interface Event # { readonly attribute DOMString type; readonly attribute EventTarget? target; readonly attribute EventTarget? currentTarget; const unsigned short NONE = 0; const unsigned short CAPTURING_PHASE = 1; const unsigned short AT_TARGET = 2; const unsigned short BUBBLING_PHASE = 3; readonly attribute unsigned short eventPhase; void stopPropagation(); void stopImmediatePropagation(); readonly attribute boolean bubbles; readonly attribute boolean cancelable; void preventDefault(); readonly attribute boolean defaultPrevented; [Unforgeable] readonly attribute boolean isTrusted; readonly attribute DOMTimeStamp timeStamp; void initEvent(DOMString type, boolean bubbles, boolean cancelable); }; dictionary EventInit { boolean bubbles = false; boolean cancelable = false; };