Événements
Qu’est-ce qu’un événement ?
Section intitulée « Qu’est-ce qu’un événement ? »Un événement est une action déclenchée par l’utilisateur ou le navigateur :
clic de souris, appui sur une touche, chargement d’une page, etc.
JavaScript permet de réagir à ces événements en exécutant du code.
Ajouter un événement
Section intitulée « Ajouter un événement »La méthode moderne est addEventListener().
Elle permet d’écouter un événement et de définir la fonction à exécuter.
let bouton = document.getElementById("monBouton");
bouton.addEventListener("click", () => { alert("Bouton cliqué !");});Avantage : on peut attacher plusieurs événements sur le même élément, et les retirer avec
removeEventListener.
Types d’événements courants
Section intitulée « Types d’événements courants »click→ clic de sourismouseover→ passage de la souriskeydown→ touche du clavier enfoncéesubmit→ soumission d’un formulaire
Utiliser l’objet event
Section intitulée « Utiliser l’objet event »Lorsqu’un événement est déclenché, la fonction de rappel reçoit automatiquement un objet event.
Cet objet contient toutes les informations sur l’action qui vient de se produire.
Exemples d’informations utiles :
event.type→ type d’événement (click,keydown, …)event.target→ élément qui a déclenché l’événementevent.key→ touche pressée (uniquement pour les événements clavier)event.clientX/event.clientY→ coordonnées du clic (événements souris)
document.addEventListener("keydown", (event) => { console.log("Type :", event.type); // "keydown" console.log("Touche appuyée :", event.key); // ex. "a"});Exemple avec un clic
Section intitulée « Exemple avec un clic »document.addEventListener("click", (event) => { console.log("Élément cliqué :", event.target); console.log("Position du clic :", event.clientX, event.clientY);});L’objet
eventest donc indispensable pour rendre ton code plus réactif et précis.
Exemple pratique
Section intitulée « Exemple pratique »<input type="text" id="champ" placeholder="Écris quelque chose"><p id="affichage"></p>
<script> let champ = document.getElementById("champ"); let affichage = document.getElementById("affichage");
champ.addEventListener("input", () => { affichage.innerText = champ.value; });</script>Ici, le paragraphe s’actualise en direct à chaque saisie.
Propagation des événements
Section intitulée « Propagation des événements »Par défaut, les événements suivent deux phases :
- Capturing → l’événement part du document et descend dans l’arbre DOM jusqu’à l’élément ciblé.
- Bubbling → une fois déclenché, l’événement remonte de l’élément ciblé vers ses parents.
Cette mécanique permet d’utiliser l’event delegation : gérer les événements au niveau d’un parent au lieu de les attacher à chaque enfant individuellement.
Très pratique pour des listes ou des éléments ajoutés dynamiquement.
Bonnes pratiques
Section intitulée « Bonnes pratiques »- Utiliser
addEventListenerplutôt queonclick="..."dans le HTML (plus propre et flexible). - Toujours exploiter l’objet
eventpour obtenir des infos utiles (event.target,event.key, etc.). - Supprimer les écouteurs inutiles avec
removeEventListenerpour éviter les fuites mémoire. - Privilégier l’event delegation (écouter un parent plutôt que chaque enfant) pour de meilleures performances.