<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#box1 {
width: 300px;
height: 300px;
background-color: red;
}
#box2 {
width: 200px;
height: 200px;
background-color: green;
}
#box3 {
width: 100px;
height: 100px;
background-color: blue;
}
</style>
</head>
<body>
<input type="button" value="按钮" id="btn">
<div id="box1">
<div id="box2">
<div id="box3">
</div>
</div>
</div>
<script>
// 通过事件对象,可以获取到事件发生的时候和事件相关的一些数据
var box1 = document.getElementById('box1');
var box2 = document.getElementById('box2');
var box3 = document.getElementById('box3');
var array = [box1, box2, box3];
for (var i = 0; i < array.length; i++) {
var box = array[i];
box.onclick = function (e) {
e = e || window.event;
// 事件的阶段
console.log(e.eventPhase);
// e.target 获取真正触发事件的对象
var target = e.target || e.srcElement;
console.log(target);
// e.curentTarget 和this一样 获取事件处理函数所属的对象
console.log(e.currentTarget);
console.log(this);
}
}
// var btn = document.getElementById('btn');
// btn.onclick = function (e) {
// // DOM标准中,是给事件处理函数一个参数
// // e就是事件对象
// // 在老版本的IE中获取事件对象的方式 window.event
// //
// // 处理事件对象的浏览器兼容性
// e = e || window.event;
// // 事件的阶段:1 捕获阶段 2 目标阶段 3 冒泡阶段 了解
// // console.log(e.eventPhase);
// // e.target 获取真正触发事件的对象 浏览器兼容问题
// // 在老版本的IE中 srcElement
// // 处理兼容性问题
// var target = e.target || e.srcElement;
// console.log(e.target);
// //
// // e.currentTarget 事件处理函数所属的对象this
// console.log(e.currentTarget);
// }
</script>
</body>
</html>