次のコードでイベントが親要素まで伝播する順番はどれですか?
[ javascript ]
// div > p の構造
div.addEventListener("click", () => console.log("div"));
p.addEventListener("click", () => console.log("p"));
- div → p
- p → div
- 同時に発火
- 実行されない
正解
- p → div
解説
デフォルトはバブリングフェーズで発火するため、まずp(子要素)が実行され、その後に親のdivが実行されます。
使用例(サンプルコード)
[ javascript ]
const div = document.getElementById("div");
const p = document.getElementById("p");
div.addEventListener("click", () => console.log("div"));
p.addEventListener("click", () => console.log("p"));