2 回答
TA贡献1806条经验 获得超8个赞
您可以参考event.currentTarget
而不是event.target
:
Event 接口的 currentTarget 只读属性 [...] 始终指的是已附加事件处理程序的元素,而不是 Event.target,后者标识发生事件的元素并且可能是其事件处理程序的元素。后裔。
在下面的代码片段中请注意,无论哪个元素触发事件,currentTarget
始终是包含<li>
元素:
function doStuff(e) {
console.clear();
console.log(`target: ${e.target.className}`); // div-child
console.log(`currentTarget: ${e.currentTarget.className}`); // li-parent
}
ul {
list-style: none;
margin: 0;
padding: 1rem;
background: tomato;
}
li {
padding: 0.25rem;
background: bisque;
}
li div {
background: white;
margin: 0.5rem;
padding: 0.5rem;
}
<ul>
<li class="li-parent" onmouseover="doStuff(event)">
<div class="div-child">child 1</div>
<div class="div-child">child 2</div>
</li>
</ul>
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报