Ho letto l'articolo su https://developer.mozilla.org/en/DOM/element.addEventListener ma non riesco a capire l' useCapture
attributo. Definizione c'è:
Se vero, useCapture indica che l'utente desidera avviare l'acquisizione. Dopo aver avviato l'acquisizione, tutti gli eventi del tipo specificato verranno inviati al listener registrato prima di essere inviati a qualsiasi EventTarget sotto di esso nella struttura DOM. Gli eventi che gorgogliano verso l'alto attraverso l'albero non attiveranno un ascoltatore designato a utilizzare l'acquisizione.
In questo codice l'evento genitore si attiva prima del figlio, quindi non sono in grado di comprenderne il comportamento. L'oggetto documento ha usecapture true e il div child ha usecapture impostato su false e viene seguita usecapture del documento. Pertanto, perché la proprietà document è preferita rispetto a child.
function load() {
document.addEventListener("click", function() {
alert("parent event");
}, true);
document.getElementById("div1").addEventListener("click", function() {
alert("child event");
}, false);
}
<body onload="load()">
<div id="div1">click me</div>
</body>
no specification is made as to the order in which they will receive the event with regards to the other EventListeners on the EventTarget
. Non ho testato tutti i browser, quindi potrebbe capitare che tutti lo implementino allo stesso modo. Tuttavia, gli eventi di acquisizione verranno eseguiti prima degli eventi non di acquisizione.