0Pricing
JavaScript Academy · Lekcja

Obiekt zdarzenia

Proszę odczytywać szczegóły zdarzenia, takie jak target i type.

Obiekt zdarzenia to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 4 lekcji w sumie.

Argument zdarzenia

Gdy wystąpi zdarzenie, przeglądarka przekazuje do funkcji obsługi obiekt zdarzenia. Zawiera on szczegóły dotyczące tego, co się wydarzyło, oraz elementów, których to dotyczy.

btn.addEventListener("click", (event) => {
  console.log(event.type); // "click"
});

event.type

event.type to nazwa zdarzenia, która pozwala jednej funkcji obsługi reagować w różny sposób na różne typy zdarzeń.

function handle(e) {
  console.log("Got a " + e.type + " event");
}

event.target

event.target to element, z którego faktycznie pochodzi zdarzenie — najgłębiej zagnieżdżony element, z którym wykonano działanie.

list.addEventListener("click", (e) => {
  console.log(e.target); // the exact clicked element
});

event.currentTarget

event.currentTarget to element, którego nasłuchiwacz jest obecnie wykonywany, czyli element, na którym wywołano addEventListener.

list.addEventListener("click", (e) => {
  console.log(e.currentTarget === list); // true
});

target a currentTarget

Podczas propagacji zdarzeń w górę target może wskazywać element potomny, podczas gdy currentTarget wskazuje nasłuchujący element nadrzędny. To rozróżnienie umożliwia delegowanie zdarzeń.

list.addEventListener("click", (e) => {
  // e.target = clicked <li>
  // e.currentTarget = the <ul>
});

Delegowanie zdarzeń

Przypisz jeden nasłuchiwacz do elementu nadrzędnego i użyj target.closest, aby znaleźć element potomny, na którym wykonano działanie. Takie rozwiązanie lepiej skaluje się niż wiele nasłuchiwaczy.

list.addEventListener("click", (e) => {
  const item = e.target.closest("li");
  if (item) console.log(item.dataset.id);
});

event.timeStamp

event.timeStamp rejestruje moment utworzenia zdarzenia, co jest przydatne do mierzenia odstępów między zdarzeniami.

btn.addEventListener("click", (e) => {
  console.log(e.timeStamp);
});

Współrzędne zdarzeń myszy

Zdarzenia myszy udostępniają dane dotyczące położenia, takie jak clientX/clientY (względem obszaru widoku) oraz pageX/pageY (względem dokumentu).

area.addEventListener("click", (e) => {
  console.log(e.clientX, e.clientY);
});

Klawisze modyfikujące

Właściwości takie jak e.shiftKey, e.ctrlKey, e.altKey i e.metaKey informują, które klawisze modyfikujące były przytrzymane.

btn.addEventListener("click", (e) => {
  if (e.shiftKey) console.log("Shift-click");
});

event.isTrusted

event.isTrusted ma wartość true dla rzeczywistych zdarzeń wygenerowanych przez użytkownika i false dla zdarzeń utworzonych przez skrypt, co pomaga odróżnić prawdziwe dane wejściowe.

btn.addEventListener("click", (e) => {
  console.log(e.isTrusted);
});

Odczytywanie klawisza

Zdarzenia klawiatury udostępniają e.key (znak lub nazwę), dzięki czemu można reagować na konkretne klawisze.

input.addEventListener("keydown", (e) => {
  if (e.key === "Enter") console.log("submit");
});

Szybkie sprawdzenie

Rozróżnij oba elementy docelowe.

Podsumowanie

Obiekt zdarzenia opisuje zdarzenie za pomocą właściwości type, target (element, z którego zdarzenie pochodzi) i currentTarget (element, na którym znajduje się nasłuchiwacz). Różnica między nimi umożliwia delegowanie zdarzeń. Zdarzenia udostępniają również współrzędne, klawisze modyfikujące, właściwości key, timeStamp i isTrusted.

Często zadawane pytania

Czy lekcja „Obiekt zdarzenia” jest bezpłatna?

Tak — pełny tekst „Obiekt zdarzenia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Obiekt zdarzenia”?

Proszę odczytywać szczegóły zdarzenia, takie jak target i type. Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Obiekt zdarzenia”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy addEventListener
  2. Obiekt zdarzenia
  3. preventDefault i stopPropagation
  4. Zdarzenia klawiatury i myszy
← Powrót do JavaScript Academy