elt.addEventListener(...)
elt.addEventListener('click', ...)elt.addEventListener('click', aFaire)
aFaire est le nom de la fonction qui sera exécutée
addEventListenerelt.addEventListener('click', maFonction) (avec elt qui est un objet de type Élément)elt.addEventListener('click', maFonction) : on donne en argument le nom de la fonction qui devra être exécutée. Ceci fait référence à l'objet fonction correspondant.
let maDiv = document.getElementById('div1');
maDiv.addEventListener('click', clicSurElement);
function clicSurElement(event) {
console.log("Un clic est capté");
console.log(event);
}
Démo
type : le type de l'évènementtimeStamp : la date de création (en ms) de l'évènementcurrentTarget : le nœud du DOM qui a déclenché le callbacktarget : le nœud du DOM qui a reçu l'évènement en premierbubbles : booléen vrai si l'évènement est en phase de bubblingscreenX, screenY, clientX, clientY, etc liste complète key, code, ctrlKey, altKey, etc liste complète
target et currentTargettarget : le nœud du DOM qui a reçu l'évènement en premiercurrentTarget : le nœud du DOM qui a déclenché le callback
event.currentTargetevent.target
function clicSurElement(event) {
// event est la seule variable disponible
// event.currentTarget donne l'élément qui a déclenché la fonction callback
console.log(event.currentTarget);
// event.target donne l'élément qui a reçu l'évènement
// mais pas nécessairement déclenché la fonction callback
console.log(event.target);
event.preventDefault() : empêcher l'action par défaut de se produire (par ex. activation d'un lien)event.stopPropagation() : arrêter la propagation de l'évènement dans l'arbre (arrêter le bubbling)elt.removeEventListener('click', clicSurElement) pour supprimer un capteur d'évènement sur un élément. Les paramètres doivent être les mêmes que ceux qui ont servi à créer le capteur.<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Capteur d'évènement</title>
<!-- inclure le script qui contient les fonctions Javascript -->
<script src="mesFonctions.js"></script>
</head>
<body>
<h1>Capteurs d'évènement</h1>
<p id="p1">Attention : mettre le JS à la fin du HTML
afin que l'arbre DOM soit bien créé !</p>
<script>
"use strict";
// lister les évènements à capter
document.getElementById('p1').addEventListener('click', clicSurElement);
</script>
</body>
</html>
<head>
<meta charset="UTF-8">
<title>Capteur d'évènement</title>
<script src="lib/adress-book.js"></script>
<script src="lib/person.js"></script>
<script src="app/init.js"></script>
</head>
"use strict";
function initApp() {
// mettre toutes les interactions à initialiser
// par ex
let toto = document.getElementById("toto");
toto.addEventListener("click", displayAddressBook);
...
}
body
<body>
...
<script>
"use strict";
// appel de la fonction d'initialisation
initApp();
</script>
</body>
defer pour notre application, par exemple :
<head>
<meta charset="UTF-8">
<title>Capteur d'évènement</title>
<script src="lib/adress-book.js"></script>
<script src="lib/person.js"></script>
<script src="app/init.js" defer></script>
</head>
defer) :
"use strict";
function initApp() {
// mettre toutes les interactions à initialiser
// par ex
let toto = document.getElementById("toto");
toto.addEventListener("click", displayAddressBook);
...
}
// appeler la fonction qui initialise les interactions
initApp();