addEventListener — écouter les actions
Les événements sont le cœur de l'interactivité. Quand l'utilisateur clique, tape, défile — JavaScript peut réagir.
const bouton = document.querySelector("#monBouton");
bouton.addEventListener("click", function() {
alert("Vous avez cliqué !");
});
La méthode addEventListener prend deux arguments :
- Le type d'événement : "click", "submit", "input", "keydown"...
- La fonction handler : ce qui se passe quand l'événement survient
Événements courants
click— clic sourissubmit— soumission d'un formulaireinput— saisie dans un champ (en temps réel)keydown— touche enfoncéemouseover/mouseout— survol sourischange— valeur d'un champ modifiée (quand il perd le focus)
L'objet event
Chaque handler reçoit automatiquement un objet event avec des informations utiles :
document.querySelector("form").addEventListener("submit", function(event) {
event.preventDefault(); // empêche le rechargement de la page
const input = document.querySelector("#email");
console.log("Email :", input.value);
});
document.addEventListener("keydown", function(event) {
console.log("Touche :", event.key); // "Enter", "Escape", "a"...
});
event.preventDefault() est indispensable pour les formulaires — sans ça, la page se recharge et vous perdez tout.
Délégation d'événements
Au lieu d'ajouter un événement sur chaque élément, vous l'ajoutez sur le parent et vérifiez quel enfant a été cliqué :
document.querySelector("#liste").addEventListener("click", function(event) {
if (event.target.tagName === "LI") {
event.target.classList.toggle("fait");
}
});
Avantage : ça fonctionne même pour les éléments ajoutés dynamiquement après le chargement de la page.
addEventListener — listening to actions
Events are the heart of interactivity. When a user clicks, types, scrolls — JavaScript can react.
const button = document.querySelector("#myButton");
button.addEventListener("click", function() {
alert("You clicked!");
});
The addEventListener method takes two arguments:
- The event type: "click", "submit", "input", "keydown"...
- The handler function: what happens when the event occurs
Common events
click— mouse clicksubmit— form submissioninput— typing in a field (real-time)keydown— key pressedmouseover/mouseout— mouse hoverchange— field value changed (when it loses focus)
The event object
Every handler automatically receives an event object with useful information:
document.querySelector("form").addEventListener("submit", function(event) {
event.preventDefault(); // prevents page reload
const input = document.querySelector("#email");
console.log("Email:", input.value);
});
document.addEventListener("keydown", function(event) {
console.log("Key:", event.key); // "Enter", "Escape", "a"...
});
event.preventDefault() is essential for forms — without it, the page reloads and you lose everything.
Event delegation
Instead of adding an event on each element, you add it on the parent and check which child was clicked:
document.querySelector("#list").addEventListener("click", function(event) {
if (event.target.tagName === "LI") {
event.target.classList.toggle("done");
}
});
Advantage: it works even for elements added dynamically after the page loads.
Copiez ce prompt dans Claude ou ChatGPT :
Crée un formulaire de contact HTML avec validation JavaScript en temps réel. Utilise addEventListener sur les champs input et submit. Explique chaque événement utilisé.
L'IA a oublié event.preventDefault() dans le handler de formulaire. La page se recharge au lieu d'afficher le message. Ajoutez la ligne manquante.
event.preventDefault() ?