事件

60 阅读1分钟

事件委托/代理?

是什么:把多个子元素的同一类型的监听逻辑,合并到父元素上通过一个监听函数来管理的行为,就是事件委托。通过事件委托,我们可以减少内存开销、简化注册步骤,大大提高开发效率。

原理:事件委托本质是利用了事件流中的冒泡机制。

使用场景:比如我们有一个列表我们需要为每个li标签绑定一个事件,但是这么做不仅累,开销也大这个时候我们就可以使用事件委托将事件绑定到li的父元素ui上面,然后用e.target拿到拿到实际触发事件的那个元素。

事件模型是什么?

原始事件模型(DOM0级)

  • 将事件直接绑定在HTML元素上或着JS代码中 ,只支持冒泡不支持捕获,同一个类型的事件只能绑定一次(会进行事件覆盖。)

标准事件模型(DOM2级)

  • 使用的是addEventListener(removeEventListener)它可以在一个DOM元素上绑定多个事件处理器,各自并不会冲突。

IE事件模型(基本不用):

  • 事件处理阶段:事件到达目标元素, 触发目标元素的监听函数。
  • 事件冒泡阶段:事件从目标元素冒泡到document, 依次检查经过的节点是否绑定了事件监听函数,如果有则执行。