为了账号安全,请及时绑定邮箱和手机立即绑定

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一般表示当前元素的子元素。理解没错吧。有问题请纠正

正在回答

3 回答

this 是会改变的,而e.target是确定的,是唯一不变的。

1 回复 有任何疑惑可以回复我~
#1

咖啡学者 提问者

非常感谢!
2017-03-22 回复 有任何疑惑可以回复我~
#2

洋葱_dot

我理解的是:this指的就是$("ul")中的ul,而e(event)指的是触发事件的元素li
2017-04-27 回复 有任何疑惑可以回复我~

在这里this指的是e.currentTarget 吧,e.currentTarget指的是绑定事件处理函数的当前元素,e.target 是触发事件的开始元素

ul绑定了事件处理函数,在函数里获取到的e.currentTarget对象就是ul元素,

点击时,实际点击到了li元素,然后冒泡到了ul元素,触发ul的事件处理函数执行,事件对象最开始是从li元素向上冒泡到ul的,说明实际的源头即任务源头就是li元素

e.target触发事件的源元素,e.currentTarget绑定事件处理函数的当前元素

仅个人看法

0 回复 有任何疑惑可以回复我~

this应该是 指代的是$('ul')中的ul

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

this和e.target的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信