Zdarzenia w JavaScript są obsługiwane poprzez:
- Dodanie nasłuchiwania zdarzeń – używa się metody addEventListener, która pozwala przypisać funkcję (tzw. event handler) do konkretnego elementu HTML.
- Wbudowanie w HTML – mniej zalecane, ale można użyć atrybutów takich jak onclick bezpośrednio w znacznikach HTML (np. <button onclick=”funkcja()”>).
- Modyfikacja DOM – JavaScript pozwala zmieniać elementy HTML i ich style CSS w odpowiedzi na zdarzenia.
Podstawowa składnia z addEventListener:

- element – wybrany element HTML (np. za pomocą document.querySelector(„selektor”)).
- „nazwaZdarzenia” – typ zdarzenia, np. „click”, „mouseover”, „input”.
- funkcja – kod, który wykona się, gdy zdarzenie zostanie wyzwolone.
Jak to działa w praktyce?
- Wybieramy element HTML, na którym ma się coś wydarzyć (np. przycisk).
- Dodajemy nasłuchiwanie zdarzenia (np. kliknięcie).
- Definiujemy, co ma się stać – np. zmiana koloru, wyświetlenie tekstu, animacja.
Podstawowe zdarzenia i ich wykorzystanie
Poniżej opisuję kilka popularnych zdarzeń, które można połączyć z HTML i CSS, aby uzyskać ciekawe efekty. Do każdego zdarzenia podaję przykład kodu.
Zdarzenie click
- Opis: Wyzwalane po kliknięciu elementu. Idealne do przycisków, linków itp.
- Przykład: Zmiana koloru tła po kliknięciu przycisku
HTML:

CSS:

JS:

Efekt: Po kliknięciu przycisku tło strony zmienia się na jasnoniebieskie.
<!DOCTYPE html>
<html lang=”pl”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>Wyświetlanie tekstu na żywo</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
}
#pole {
padding: 5px;
font-size: 16px;
width: 250px;
}
#wynik {
margin-top: 15px;
font-size: 18px;
color: blue;
}
</style>
</head>
<body>
<h2>Wpisz coś:</h2>
<input type=”text” id=”pole” placeholder=”Wpisz coś…”>
<p id=”wynik”></p>
<script>
const pole = document.querySelector(„#pole”);
const wynik = document.querySelector(„#wynik”);
pole.addEventListener(„input”, function () {
wynik.textContent = pole.value;
});
</script>
</body>
</html>