2 回答

TA貢獻1806條經(jīng)驗 獲得超8個贊
您可以參考event.currentTarget
而不是event.target
:
Event 接口的 currentTarget 只讀屬性 [...] 始終指的是已附加事件處理程序的元素,而不是 Event.target,后者標(biāo)識發(fā)生事件的元素并且可能是其事件處理程序的元素。后裔。
在下面的代碼片段中請注意,無論哪個元素觸發(fā)事件,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 關(guān)注
- 137 瀏覽
添加回答
舉報