Cheminement d'un évènement et paramètre d'un listener
Bonjour, est-ce que quelqu'un pourrait m'expliquer le cheminement d'un événement ? Dans mon cours, il est dit :
"Par défaut, les listeners dont déclenchés à la remontée de l’événement.
Il est donc possible de s’abonner à tous les événements se produisant à l’intérieur d’un élément (et pas uniquement sur cet élément).
Je comprends pas pourquoi le fait que les listeners soient déclenchés à la remontée ça fait qu'on puisse s'abonner à tous les évènements se situant à l'intérieur d'un élément ? (un élément c'est une balise html ? un listener c'est ce qui se passe après un évènement ? que veut dire s'abonner ?)
Par ailleurs il y a ce code que je ne comprends pas bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<button>A</button>
<button>B</button>
<button>C</button>
<p id="msg"></p>
</body>
</html> |
Code:
1 2 3 4 5 6 7 8 9 10 11
| document.getElementsByTagName("body")[0]
.addEventListener("click", function(evt) {
var msg = document.getElementById("msg");
if (evt.target.tagName === "BUTTON") {
msg.textContent = "Vous avez cliqué sur " +
evt.target.textContent;
} else {
console.log(evt.target);
msg.textContent = "Vous avez raté les boutons...";
}
}); |
Dans mon cours il est dit :
"Le listener reçoit en paramètre un événement, dont l’attribut target contient l’élément cible."
Donc l'attribut target de l'évènement click est l'élément boutton sur lequel on a cliqué. Mais ici evt n'est jamais défini, ça veut dire que le paramètre passé à une fonction d'un listener est automatiquement défini ?