Ce face addEventListener
addEventListener „ascultă” un eveniment pe un element. Când evenimentul are loc, funcția dată este apelată și primește un obiect cu detalii despre eveniment.
Evenimente frecvente: click, input (câmp modificat), submit (formular trimis), keydown (tastă apăsată), DOMContentLoaded (pagina a fost încărcată).
Cu eveniment.preventDefault() oprești comportamentul obișnuit al browserului, de exemplu reîncărcarea paginii la trimiterea unui formular.
Parametri
| Parametru | Descriere |
|---|---|
eveniment |
Numele evenimentului, fără „on”: "click", nu "onclick". |
functie |
Funcția apelată. Primește obiectul evenimentului. |
optiuni |
Opțional. De exemplu { once: true } pentru a asculta o singură dată. |
Ce returnează
undefined.
Exemple
Exemplul 1: Numărarea clicurilor
<button id="buton">Apasă</button>
<script>
let clicuri = 0;
document.querySelector("#buton").addEventListener("click", () => {
clicuri++;
console.log(`Clicuri: ${clicuri}`);
});
</script>
Rezultat în browser, după trei clicuri
Clicuri: 1
Clicuri: 2
Clicuri: 3
Exemplul 2: Formular fără reîncărcarea paginii
<form id="abonare">
<input name="email" value="ana@exemplu.ro">
<button>Abonează-te</button>
</form>
<script>
document.querySelector("#abonare").addEventListener("submit", (eveniment) => {
eveniment.preventDefault();
const email = eveniment.target.email.value;
console.log("Trimit abonarea pentru " + email);
});
</script>
Rezultat în browser, după apăsarea butonului
Trimit abonarea pentru ana@exemplu.ro
Greșeli frecvente
- Scrii
addEventListener("click", functie()), cu paranteze. Funcția rulează imediat, la încărcarea paginii, nu la clic. - Folosești
"onclick"ca nume de eveniment. Numele corect este"click". - Adaugi ascultătorul de mai multe ori (de exemplu, într-o funcție apelată repetat) și funcția rulează de mai multe ori la un singur clic.
Comenzi înrudite
document.querySelector: Găsește primul element din pagină care se potrivește cu un selector CSS.classList: Adaugă, scoate sau comută clase CSS pe un element.textContent / innerHTML: Citește sau schimbă conținutul unui element: ca text simplu sau ca HTML.