e.target与this的区别
e.target 与 this 的区别
<!DOCTYPE html>
<html lang="en">
<head>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div>123</div>
<ul>
<li>abc</li>
<li>abc</li>
<li>abc</li>
</ul>
<script>
// 常见事件对象的属性和方法
// 1. e.target 返回的是触发事件的对象(元素) this 返回的是绑定事件的对象(元素)
// 区别: e.target 点击了那个元素, 就返回那个元素
// this 那个元素绑定了这个点击事件, 那么就返回谁
var div = document.querySelector("div");
var ul = document.querySelector("ul");
// 二者一致
div.addEventListener("click", function (e) {
console.log(e.target); // <div>123</div>
console.log(this); // <div>123</div>
});
// 我们给ul 绑定了事件 那么this 就指向ul
ul.addEventListener("click", function (e) {
console.log(this);
console.log(e.currentTarget);
// e.target 指向我们点击的那个对象 谁触发了这个事件 我们点击的是li e.target 指向的就是li
console.log(e.target);
});
// 了解兼容性
// div.onclick = function (e) {
// e = e || window.event;
// var target = e.target || e.srcElement;
// console.log(target);
// };
// 2. 了解 跟 this 有个非常相似的属性 currentTarget ie678不认识
</script>
</body>
</html>