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

this和e.target区别,求教

我的理解,this永远指向事件绑定的对象,e.target永远指向当前触发事件的对象,

比如下面例子,this永远指向ul,e.target可能指向ul,可能指向li,对吗?

<ul>

<li>111</li>

<li>222</li>

<li>333</li>

</ul>

$(ul).on('click',function(e){

alert($(this).text());

alert(e.target.textContent);

$

})

正在回答

2 回答

可以这样理解吧,e.target指向当前点击的DOM元素,点击哪个li就是哪个li,点击ul就是ul.因为js是会冒泡的,所以点击li的时候,this会变成ul.

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

this指触发事件的元素,无论你鼠标点击在什么位置,触发事件的元素都是ul,所以this指ul,但是e.target指鼠标的焦点元素,如果你点击到了ul内部的li,则e.target指的就是li,但是如果你点击的是ul其他的非li部分,则this和e.target是一样的。

如果不是通过冒泡产生的事件,则this和e.target没有区别。

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

金刚无敌葫芦娃

不是这样吧,this指向的是监听事件的元素,e.target指向触发事件的元素, 事件可以由ul触发,也可以由li触发,所以e.target可能是ul,也可能是li; 但无论是ul触发还是li触发,都是由ul监听捕获的,所以this指向ul
2020-04-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础(三)—事件篇
  • 参与学习       89997    人
  • 解答问题       625    个

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

进入课程

this和e.target区别,求教

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