Comme d'autres l'ont dit, le bullage et la capture décrivent dans quel ordre certains éléments imbriqués reçoivent un événement donné.
Je voulais souligner que pour le le plus intime peut sembler étrange. En effet, dans ce cas, l'élément commander dans lequel les écouteurs d'événements sont ajoutés importe .
Dans l'exemple suivant, la capture de div2
sera exécuté d'abord que le bullage ; alors que le bullage pour les div4
sera exécuté en premier avant de capturer.
function addClickListener (msg, num, type) {
document.querySelector("#div" + num)
.addEventListener("click", () => alert(msg + num), type);
}
bubble = (num) => addClickListener("bubble ", num, false);
capture = (num) => addClickListener("capture ", num, true);
// first capture then bubble
capture(1);
capture(2);
bubble(2);
bubble(1);
// try reverse order
bubble(3);
bubble(4);
capture(4);
capture(3);
#div1, #div2, #div3, #div4 {
border: solid 1px;
padding: 3px;
margin: 3px;
}
<div id="div1">
div 1
<div id="div2">
div 2
</div>
</div>
<div id="div3">
div 3
<div id="div4">
div 4
</div>
</div>
3 votes
Je vous recommande ce lien utile : javascript.info/bubbling-and-capturing
0 votes
@CommunityAns : ce site est excellent, mais ce sujet, en particulier, est décrit de manière un peu confuse.