http://so-zou.jp/web-app/tech/programming/javascript/event/handler/event-flow.htm
addEventListenerの第3引数(useCapture引数)は、イベントハンドラが実行される順を指定する。
規定値はfalseで、この場合は子孫→祖先の順にイベントハンドラが呼ばれる。trueだと、祖先→子孫の順にイベントハンドラが呼ばれる。
falseを指定するか省略しておけばまず間違いはない。
<!-- falseだと、a2→a1順にイベントが呼ばれる --> <a id="a1_1"><a id="a1_2>link</a></a> <script> document.querySelector("#a1_1").addEventListener("click", () => console.log("a1_1"), false); document.querySelector("#a1_2").addEventListener("click", () => console.log("a1_2"), false); </script> <!-- trueだと、a1→a2順にイベントが呼ばれる --> <a id="a2_1"><a id="a2_2>link</a></a> <script> document.querySelector("#a2_1").addEventListener("click", () => console.log("a2_1"), true); document.querySelector("#a2_2").addEventListener("click", () => console.log("a2_2"), true); </script>