this和e.target的區別
<div?class="left"> ????????<div?class="aaron"> ????????????<ul> ????????????????<li>點擊:觸發一</li> ????????????????<li>點擊:觸發二</li> ????????????????<li>點擊:觸發三</li> ????????????????<li>點擊:觸發四</li> ????????????</ul> ????????</div> ????</div>
$("ul").on('click',function(e){ ????//這里this是指ul ????$(this).css('border','1px?solid?blue') })
$(e.target).css('border','1px?solid?red')//把上面的this改成e.target
效果是點擊觸發一,則會出現一個紅色邊框把<li>觸發一</li>包裹起來。
所以e.target一般表示當前元素的子元素。理解沒錯吧。有問題請糾正
2017-03-22
this 是會改變的,而e.target是確定的,是唯一不變的。
2018-10-08
在這里this指的是e.currentTarget 吧,e.currentTarget指的是綁定事件處理函數的當前元素,e.target 是觸發事件的開始元素
ul綁定了事件處理函數,在函數里獲取到的e.currentTarget對象就是ul元素,
點擊時,實際點擊到了li元素,然后冒泡到了ul元素,觸發ul的事件處理函數執行,事件對象最開始是從li元素向上冒泡到ul的,說明實際的源頭即任務源頭就是li元素
e.target觸發事件的源元素,e.currentTarget綁定事件處理函數的當前元素
僅個人看法
2017-07-13
this應該是 指代的是$('ul')中的ul