一、概述
事件監(jiān)聽中e有target和currentTarget兩個屬性,target只會出現(xiàn)在事件流目標(biāo)階段,currentTarget可能出現(xiàn)在事件流捕獲、目標(biāo)、冒泡中任一階段。
二、區(qū)分
e.target是觸發(fā)事件元素,e.currentTarget是事件監(jiān)聽元素,一般情況下兩者指向相同,事件委托時往往e.target指向子元素而e.currentTarget指向父元素。
?一般情況下:
<div id="div">
<button id="button">按鈕</button>
</div>
<script>
button.addEventListener("click",function(){
console.log(e.target);//button
console.log(e.currentTarget);//button
});
</script>
事件委托時:
<div id="div">
<button id="button">按鈕</button>
</div>
<script>
div.addEventListener("click",function(){
console.log(e.target);//button
console.log(e.currentTarget);//div
});
</script>
(DOM事件處理函數(shù)中this指向e.currentTarget)
JS事件:target與currentTarget區(qū)別
事件冒泡、事件捕獲和事件代理
target、this、currentTarget區(qū)別