elt.addEventListener(...)
elt.addEventListener('click', ...)
elt.addEventListener('click', aFaire)
aFaire
est le nom de la fonction qui sera exécutée
addEventListener
elt.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ètetarget
et currentTarget
target
: le nœud du DOM qui a reçu l'évènement en premiercurrentTarget
: le nœud du DOM qui a déclenché le callbackevent.currentTarget
event.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();