Programy nasłuchujące zdarzeń HTML DOM JavaScript
- Poprzednia strona Zdarzenia DOM
- Następna strona Nawigacja DOM
Metoda addEventListener()
Przykład
Dodaj słuchacz zdarzenia, który zostanie uruchomiony po kliknięciu przycisku:
document.getElementById("myBtn").addEventListener("click", displayDate);
addEventListener()
Metoda przypisuje obsługuje zdarzenia do określonego elementu.
addEventListener()
Metoda dodaje obsługuje zdarzenia do elementu bez zastępowania istniejących.
Możesz dodać wiele obsługi zdarzeń do jednego elementu.
Możesz dodać wiele programistów zdarzeń tego samego typu do jednego elementu, na przykład dwa zdarzenia "click".
Możesz dodać programistę zdarzeń do dowolnego obiektu DOM, a nie tylko do elementów HTML, na przykład do obiektu window.
addEventListener()
Metoda ułatwia kontrolowanie, jak zdarzenia reagują na buforowanie.
Kiedy używasz addEventListener()
Metoda oddziela JavaScript od znaczników HTML, co poprawia czytelność; nawet jeśli nie kontrolujesz znaczników HTML, pozwala dodać słuchacza zdarzenia.
Możesz użyć removeEventListener()
Metoda pozwala łatwo usunąć słuchacza zdarzenia.
Gramatyka
element.addEventListener(event, function, useCapture);
Pierwszy parametr to typ zdarzenia (np. "click" lub "mousedown").
Drugi parametr to funkcja, którą musimy wywołać, gdy zdarzenie się stanie:
Trzeci parametr to wartość logiczna, która określa, czy używać buforowania zdarzeń, czy przechwytywania zdarzeń. Jest to parametr opcjonalny.
Uwaga:Nie używaj prefiksu "on" dla zdarzeń; używaj "click" zamiast "onclick".
Dodaj programistę zdarzeń do elementu
Przykład
Wyświetl "Hello World!" po kliknięciu na element użytkownika:
element.addEventListener("click", function(){ alert("Hello World!"); });
Możesz również odwołać się do zewnętrznej "nazwanej" funkcji:
Przykład
Wyświetl "Hello World!" po kliknięciu na element użytkownika:
element.addEventListener("click", myFunction); function myFunction() { alert ("Hello World!"); }
Dodaj wiele programistów zdarzeń do tego samego elementu
addEventListener()
Metoda pozwala dodać wiele zdarzeń do tego samego elementu, nie zastępując istniejących zdarzeń:
Przykład
element.addEventListener("click", myFunction); element.addEventListener("click", mySecondFunction);
Możesz dodać różne typy zdarzeń do tego samego elementu:
Przykład
element.addEventListener("mouseover", myFunction); element.addEventListener("click", mySecondFunction); element.addEventListener("mouseout", myThirdFunction);
Dodaj programistę zdarzeń do obiektu Window
addEventListener()
Pozwala dodać słuchacza zdarzenia do dowolnego obiektu HTML DOM, takiego jak element HTML, obiekt HTML, obiekt window lub innego obiektu obsługiwanego zdarzeń, takiego jak obiekt XMLHttpRequest.
Przykład
Dodaj słuchacza zdarzenia, który jest wywoływany, gdy użytkownik zmienia rozmiar okna:
window.addEventListener("resize", function(){ document.getElementById("demo").innerHTML = sometext; });
Przekazywanie parametrów
Przy przekazywaniu wartości parametrów, użyj "anonimowej funkcji" jako parametru do wywołania określonej funkcji:
Przykład
element.addEventListener("click", function(){ myFunction(p1, p2); });
Propagacja wydarzeń pęcherzowa czy uchwytowa?
W HTML DOM istnieją dwa sposoby propagacji wydarzeń: pęcherz i uchwyt.
Propagacja wydarzeń to metoda określająca kolejność elementów, gdy występuje wydarzenie. Jeśli w elemencie <div> znajduje się <p>, a użytkownik kliknie element <p>, który element "click" powinien być przetworzony najpierw?
W pęcherzu, najpierw przetwarzane są wydarzenia najwewnętrzniejszych elementów, następnie tych bardziej zewnętrznych: najpierw przetwarzane są wydarzenia kliknięcia elementu <p>, następnie elementu <div>.
W uchwycie, najpierw przetwarzane są wydarzenia najzewnętrzniejszych elementów, następnie tych bardziej wewnętrznych: najpierw przetwarzane są wydarzenia kliknięcia elementu <div>, następnie elementu <p>.
W metodzie addEventListener() możesz określić typ propagacji, używając parametru "useCapture":
addEventListener(event, function, useCapture);
Domyślną wartością jest false
używa się propagacji pęcherza, jeśli wartość ta ustawiona jest na true
jeśli wartość ta wynosi true, używa się propagacji uchwytu.
Przykład
document.getElementById("myP").addEventListener("click", myFunction(), true); document.getElementById("myDiv").addEventListener("click", myFunction(), true);
za pomocą metody removeEventListener()
removeEventListener()
Metoda usuwa wydarzenia处理器, które zostały addEventListener()
Dodane przez metodę wydarzenia处理器:
Przykład
element.removeEventListener("mousemove", myFunction());
Obsługa przeglądarek
Liczby w tabeli określają pierwszą przeglądarkę wspierającą te metody.
Metoda | |||||
addEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
removeEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
Komentarz:IE 8, Opera 6.0 i wcześniejsze wersje nie obsługują addEventListener()
i removeEventListener()
Metoda. Jednak, dla tych specjalnych wersji przeglądarek, możesz użyć attachEvent()}
Metoda dodawania event handlera do elementu, a następnie detachEvent()
Metoda usuwania:
element.attachEvent(event, function); element.detachEvent(event, function);
Przykład
Rozwiązanie wieloprzeglądarek
var x = document.getElementById("myBtn"); if (x.addEventListener) { // Przeznaczone dla głównych przeglądarek, oprócz IE 8 i wcześniejszych wersji x.addEventListener("click", myFunction); } else if (x.attachEvent) { // Przeznaczone dla IE 8 i wcześniejszych wersji x.attachEvent("onclick", myFunction); }
Podręcznik referencyjny obiektu zdarzenia HTML DOM
Aby uzyskać pełną listę wszystkich zdarzeń HTML DOM, odwiedź nasz kompletny Podręcznik referencyjny obiektu zdarzenia HTML DOM.
- Poprzednia strona Zdarzenia DOM
- Następna strona Nawigacja DOM