dom事件流模型
- dom事件流分为两个阶段,
首先执行的是事件捕获阶段,从外向内搜索元素上的事件监听器,发现对应类型监听器则执行。
在搜索到达事件触发元素后,开始冒泡阶段,从内向外冒泡,搜索执行事件监听器。 - 事件捕获阶段不能被取消。事件冒泡阶段有些部分事件可以取消冒泡,阻止事件继续向外传播
事件委托
- 事件委托的核心思想是通过监听一个容器元素,达到监听容器内指定类型元素的目的
- 主要使用场景为:
- 监听大量元素的事件时,通过减少添加的监听器数量,优化dom性能
- 为运行期间需要动态添加和删除的元素添加监听事件
- 实现的核心步骤为:
- 为容器元素添加监听事件
- 在监听代码中判断所触发事件的target元素是否为所要求类型元素
- 如果是则执行开发者给定的事件监听代码。
- 如果不是,从target元素的祖先元素中逐层向上查找,找到则执行第三步,直到遇到container元素都没有找到符合条件的元素,则结束执行。