咖啡学者
2017-03-22 18:06
<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一般表示当前元素的子元素。理解没错吧。有问题请纠正
this 是会改变的,而e.target是确定的,是唯一不变的。
在这里this指的是e.currentTarget 吧,e.currentTarget指的是绑定事件处理函数的当前元素,e.target 是触发事件的开始元素
ul绑定了事件处理函数,在函数里获取到的e.currentTarget对象就是ul元素,
点击时,实际点击到了li元素,然后冒泡到了ul元素,触发ul的事件处理函数执行,事件对象最开始是从li元素向上冒泡到ul的,说明实际的源头即任务源头就是li元素
e.target触发事件的源元素,e.currentTarget绑定事件处理函数的当前元素
仅个人看法
this应该是 指代的是$('ul')中的ul
jQuery基础(三)—事件篇
89997 学习 · 625 问题
相似问题