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

说一些我对委托机制的理解,欢迎提出不同的看法?

我觉得委托机制就是为了规避冒泡(子孙元素继承父元素的事件);

除了少数事件如(focus)可以规避冒泡外,其余的事件都有冒泡机制。

从开发者角度看待本节中,假设给body设置了一个事件,则他的子孙后代都能触发这个事件,若开发者的目的是指定一个元素可以触发该事件,则需要使用委托机制来规避这种冒泡行为。

并且我在测试中发现委托机制中,使用this指向的不是绑定元素的DOM对象,而是第二参数的DOM对象。

形象类比,有个老头子body开了一个公司,按照道理他的所有后代都可以调用这个公司的财务,一旦老头子body的子孙多了,会使得公司的管理变得非常混乱;所以老头子body就把公司的财务管理权限给了指定人a,现在的公司只有a能调动财务,使得财务管理变得简洁。因为a是实际的财务管理者,所以财务总监的名字就是a(this指向a的DOM对象)。

欢迎质疑,欢迎提出不同的看法,谢谢!

正在回答

3 回答

补充下,a包含它的后代,刚刚调试过

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

刚看了别人一个问题后有了启发

第二参数并不是委托给它

例如老头子body开了个公司,如果没有第二参数,那全公司所有人都可以调用财务

如果有第二参数a,

当a是最底层员工时,即没有子元素,那么全公司只有a可以调用财务

当a是非底层员工时,即a有后代或子元素,那么全公司只要是a或a的后代都可以调用财务


冒泡是从内往外冒泡,a在最里面的时候只有a可以触发事件,a如果在中间,那么从最里面一直冒泡冒到a,这些后代都可以触发

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

金刚无敌葫芦娃

当a有后代当时候,this指向的是a,还是a和a的后代?
2020-04-08 回复 有任何疑惑可以回复我~
#2

金刚无敌葫芦娃 回复 金刚无敌葫芦娃

刚试了试,this指向的不是a,也不是a和a的后代的合集;而是a和a的后代的合集中触发事件的这个元素
2020-04-08 回复 有任何疑惑可以回复我~
#3

慕无忌4172087 提问者 回复 金刚无敌葫芦娃

this肯定是指dom树中触发事件的dom元素(不可能是集合)
2020-04-09 回复 有任何疑惑可以回复我~
#4

金刚无敌葫芦娃 回复 慕无忌4172087 提问者

学到6.1又发现一件事,this指向的是绑定了事件的元素,而不是响应事件的元素,即如果给a绑定了事件,如果是通过a的后代触发的,那么this指向的是a,而不是触发了事件的a后代
2020-04-11 回复 有任何疑惑可以回复我~
查看1条回复

还不懂这些,继续学

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

举报

0/150
提交
取消

说一些我对委托机制的理解,欢迎提出不同的看法?

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