Eu li o artigo em https://developer.mozilla.org/en/DOM/element.addEventListener, mas não consigo entender o useCapture
atributo. Definição existe:
Se verdadeiro, useCapture indica que o usuário deseja iniciar a captura. Após o início da captura, todos os eventos do tipo especificado serão despachados para o ouvinte registrado antes de serem despachados para qualquer EventTargets abaixo dele na árvore DOM. Eventos que estão subindo pela árvore não acionam um ouvinte designado para usar a captura.
Nesse evento pai de código é acionado antes do filho, portanto, não consigo entender seu comportamento. O objeto de documento tem usecapture true e child div tem usecapture definido false e a usecapture é seguida. Portanto, por que a propriedade document é preferida 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
. Eu não testei todos os navegadores; portanto, eles podem implementá-lo da mesma maneira. Os eventos de captura, no entanto, serão feitos antes dos eventos de não captura.