<body>
<div id="box">
<a href="javascript:void (0)" id="link">哈哈</a>
</div>
</body>
<script>
window.onload = function () {
var link = document.getElementById("link");
var box = document.getElementById("box");
var body = document.body;
link.addEventListener("click", function (e) {
console.log("1");
},true);
box.addEventListener("click", function () {
console.log("2");
},true);
body.addEventListener("click", function () {
console.log("3");
},true);
};
</script>
当addEventListener方法中第三个参数为true的时候,说明事件执行函数是在事件捕获阶段执行的。
如上代码,当点击链接哈哈的时候,控制台会输出3、2、1。这就是事件捕获。事件捕获触发顺序和事件冒泡相反。