章节
问答
课签
笔记
评论
占位
占位

理解委托

在绑定中我们知道:

事件信息都存储在数据缓存中,对于没有特殊事件特有监听方法和普通事件都用 addEventListener 来添加事件了,而特有监听方法的特殊事件则用了另一种方式来添加事件,通过 addEventListener 触发事件后回调句柄如何处理?

具体来说就是,如何委派事件的,用到哪些机制,我们如果用到项目上是否能借鉴?我们先深入测试下,W3C下面事件执行是顺序,假如每一个节点都绑定了事件,那么事件的触发顺序如下。

我们通过测试右边的案例,来总结下事件执行的规律。

由此可见:

默认的触发循序是从事件源目标元素也就是 event.target 指定的元素,一直往上冒泡到 document 或者 body,途经的元素上如果有对应的事件都会被依次触发

最后得到的结论:

元素本身绑定事件的顺序处理机制。

分几种情况:

假设绑定事件元素本身是 A,委派元素 B.C。

第一种:

A,B,C各自绑定事件,事件按照节点的冒泡层次触发

第二种:

元素 A 本身有事件,元素还需要委派元素 B.C 事件
委派的元素 B.C 肯定是该元素 A 内部的,所以先处理内部的委派,最后处理本身的事件

第三种:

元素本身有事件,元素还需要委派事件,内部委派的元素还有自己的事件,这个有点绕
先执行 B,C 自己本身的事件,然后处理 B,C 委派的事件,最后处理 A 事件

为什么需要了解这个处理的顺序呢? 因为jQuery做委托排序的时候要用到。

任务

?不会了怎么办
||

提问题

写笔记

截图
提交
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

举报

0/150
提交
取消
全部 精华 我要发布
全部 我要发布
最新 点赞
只看我的

手记推荐

更多

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?