一、DOM事件模型
示意图:
DOM 事件标准描述了事件传播的 3 个阶段:
- 捕获阶段(Capturing phase)—— 事件(从 Window)向下走近元素。
- 目标阶段(Target phase)—— 事件到达目标元素。
- 冒泡阶段(Bubbling phase)—— 事件从元素上开始冒泡。
冒泡(bubbling): 当一个事件发生在一个元素上,它会首先运行在该元素上的处理程序,然后运行其父元素上的处理程序,然后一直向上到其他祖先上的处理程序。
捕获(capturing): 与冒泡相反,事件捕获是从外向内查找监听函数。
默认先捕获再冒泡。
记忆:冒泡的点击是起点,捕获的点击是终点。
二、事件委托
提示:「监听祖先元素」
原理:利用事件冒泡原理,将子元素的操作委托给父元素或是祖先元素统一管理。
- 当需要给后代元素执行多个重复事件时,可通过事件委托一次性管理操作来减少事件触发,节约内存。
- 动态监听元素:当需要给动态添加的元素添加事件时,必须通过事件委托来委托给父辈元素或祖先元素。