Samouczek JS

JS DOM Wprowadzenie do JS JS Dokąd Wyjście JS Oświadczenia JS Składnia JS Komentarze JS Zmienne JS JS Let JS Const Operatorzy JS Arytmetyka JS Zadanie JS Typy danych JS Funkcje JS Obiekty JS Wydarzenia JS JS Strings Metody ciągów JS Wyszukiwanie ciągów JS Szablony JS String Numery JS Metody liczbowe JS Tablice JS Metody macierzowe JS Sortowanie tablic JS Iteracja tablicy JS JS Array Const JS Daty Formaty daty JS JS Data Pobierz metody Metody ustawiania daty JS Matematyka JS JS losowo JS Booleans Porównania JS Warunki JS Przełącznik JS Pętla JS dla Pętla JS dla In Pętla JS dla Of Pętla JS, podczas gdy Przerwa JS Iterable JS Zestawy JS Mapy JS Typ JS Konwersja typu JS JS Bitwise JS RegExp Błędy JS Zakres JS JS Podnoszenie Tryb ścisły JS JS to słowo kluczowe Funkcja strzałki JS Klasy JS JS JSON Debugowanie JS Przewodnik po stylu JS Najlepsze praktyki JS Błędy JS Wydajność JS JS słowa zastrzeżone

Wersje JS

Wersje JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Krawędź Historia JS

Obiekty JS

Definicje obiektów Właściwości obiektu Metody obiektowe Wyświetlanie obiektów Akcesoria do obiektów Konstruktorzy obiektów Prototypy obiektów Iterowalne obiekty Zestawy obiektów Mapy obiektów Odniesienie do obiektu

Funkcje JS

Definicje funkcji Parametry funkcji Wywołanie funkcji Wywołanie funkcji Funkcja Zastosuj Zamknięcia funkcji

Klasy JS

Wprowadzenie do zajęć Dziedziczenie klas Klasa statyczna

JS Async

Oddzwaniania JS Asynchroniczny JS JS Obietnice JS Async/Oczekiwanie

JS HTML DOM

Wprowadzenie do DOM Metody DOM Dokument DOM Elementy DOM DOM HTML Formularze DOM DOM CSS Animacje DOM Wydarzenia DOM Odbiornik zdarzeń DOM Nawigacja DOM Węzły DOM Kolekcje DOM Listy węzłów DOM

Zestawienie komponentów przeglądarki JS

Okno JS Ekran JS Lokalizacja JS Historia JS JS Navigator Wyskakujący alert JS Czas JS Pliki cookie JS

JS Web API

Wprowadzenie do internetowego interfejsu API Interfejs API formularzy internetowych Interfejs API historii online API przechowywania danych w sieci Web Web Worker API Internetowy interfejs API pobierania Internetowy interfejs API geolokalizacji

JS AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

JS JSON

Wprowadzenie do JSON Składnia JSON JSON a XML Typy danych JSON Analiza JSON JSON Obiekty JSON Tablice JSON Serwer JSON JSON PHP JSON HTML JSON JSONP

JS kontra jQuery

Selektory jQuery jQuery HTML jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS płótno JS Działka JS Chart.js Wykres JS Google JS D3.js

Przykłady JS

Przykłady JS JS HTML DOM Wejście JS HTML Obiekty HTML JS Wydarzenia JS HTML Przeglądarka JS Edytor JS Ćwiczenia JS JS Quiz Certyfikat JS

Referencje JS

Obiekty JavaScript Obiekty HTML DOM


JavaScript HTML DOM EventListener


Metoda addEventListener()

Przykład

Dodaj detektor zdarzeń, który uruchamia się, gdy użytkownik kliknie przycisk:

document.getElementById("myBtn").addEventListener("click", displayDate);

Metoda addEventListener()dołącza procedurę obsługi zdarzeń do określonego elementu.

Metoda addEventListener()dołącza procedurę obsługi zdarzeń do elementu bez zastępowania istniejących programów obsługi zdarzeń.

Do jednego elementu można dodać wiele programów obsługi zdarzeń.

Do jednego elementu można dodać wiele obsługi zdarzeń tego samego typu, czyli dwa zdarzenia typu „click”.

Detektory zdarzeń można dodać do dowolnego obiektu DOM, nie tylko do elementów HTML. czyli obiekt okna.

Metoda addEventListener()ułatwia kontrolowanie reakcji zdarzenia na bąbelkowanie.

Podczas korzystania z tej addEventListener()metody JavaScript jest oddzielony od znaczników HTML, dla lepszej czytelności i umożliwia dodawanie detektorów zdarzeń, nawet jeśli nie kontrolujesz znaczników HTML.

removeEventListener()Korzystając z tej metody, można łatwo usunąć detektor zdarzeń .


Składnia

element.addEventListener(event, function, useCapture);

Pierwszy parametr to typ zdarzenia (np. „ click” lub „ mousedown” lub dowolne inne zdarzenie HTML DOM ).

Drugi parametr to funkcja, którą chcemy wywołać po wystąpieniu zdarzenia.

Trzeci parametr to wartość logiczna określająca, czy używać propagacji zdarzeń, czy przechwytywania zdarzeń. Ten parametr jest opcjonalny.

Zauważ, że nie używasz przedrostka "on" dla zdarzenia; użyj " click" zamiast " onclick".


Dodaj obsługę zdarzeń do elementu

Przykład

Alert „Witaj świecie!” gdy użytkownik kliknie element:

element.addEventListener("click", function(){ alert("Hello World!"); });

Możesz również odwołać się do zewnętrznej „nazwanej” funkcji:

Przykład

Alert „Witaj świecie!” gdy użytkownik kliknie element:

element.addEventListener("click", myFunction);

function myFunction() {
  alert ("Hello World!");
}


Dodaj wiele programów obsługi zdarzeń do tego samego elementu

Metoda addEventListener()pozwala na dodanie wielu zdarzeń do tego samego elementu, bez nadpisywania istniejących zdarzeń:

Przykład

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

Do tego samego elementu możesz dodać zdarzenia różnego typu:

Przykład

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

Dodaj obsługę zdarzeń do obiektu okna

Metoda addEventListener()umożliwia dodanie detektorów zdarzeń do dowolnego obiektu HTML DOM, takiego jak elementy HTML, dokument HTML, obiekt window lub inne obiekty obsługujące zdarzenia, takie jak xmlHttpRequestobiekt.

Przykład

Dodaj detektor zdarzeń, który uruchamia się, gdy użytkownik zmienia rozmiar okna:

window.addEventListener("resize", function(){
  document.getElementById("demo").innerHTML = sometext;
});

Przekazywanie parametrów

Przekazując wartości parametrów, użyj „anonimowej funkcji”, która wywołuje określoną funkcję z parametrami:

Przykład

element.addEventListener("click", function(){ myFunction(p1, p2); });

Propagowanie zdarzeń czy przechwytywanie zdarzeń?

Istnieją dwa sposoby propagacji zdarzeń w modelu DOM HTML: propagacja i przechwytywanie.

Propagacja zdarzenia to sposób na zdefiniowanie kolejności elementów w momencie wystąpienia zdarzenia. Jeśli masz element <p> wewnątrz elementu <div>, a użytkownik kliknie element <p>, zdarzenie „click” którego elementu powinno zostać obsłużone jako pierwsze?

Podczas propagacji najpierw obsługiwane jest zdarzenie najbardziej wewnętrznego elementu, a następnie zewnętrzne: najpierw obsługiwane jest zdarzenie click elementu <p>, a następnie zdarzenie click elementu <div>.

Przy przechwytywaniu najbardziej zewnętrznego zdarzenia jest obsługiwane najpierw, a następnie wewnętrzne: zdarzenie click elementu <div> będzie obsługiwane jako pierwsze, a następnie zdarzenie click elementu <p>.

Za pomocą metody addEventListener() możesz określić typ propagacji za pomocą parametru „useCapture”:

addEventListener(event, function, useCapture);

Wartość domyślna to false, co spowoduje użycie propagacji bąbelków, gdy wartość jest ustawiona na true, zdarzenie korzysta z propagacji przechwytywania.

Przykład

document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);

Metoda removeEventListener()

Metoda removeEventListener()usuwa programy obsługi zdarzeń, które zostały dołączone za pomocą metody addEventListener():

Przykład

element.removeEventListener("mousemove", myFunction);

Dokumentacja obiektu zdarzenia DOM HTML

Listę wszystkich zdarzeń HTML DOM można znaleźć w naszej pełnej dokumentacji obiektu HTML DOM Event Object Reference .


Sprawdź się za pomocą ćwiczeń

Ćwiczenie:

Użyj , eventListeneraby przypisać zdarzenie onclick do <button>elementu.

<button id="demo"></button>

<script>
document.getElementById("demo").("", myFunction);
</script>