Skip to content

事件冒泡、事件捕获、DOM事件流、事件委托 #19

@HecateDK

Description

@HecateDK

什么是事件流?事件流描述的是从页面中接收事件的顺序。
IE是提出的事件流是冒泡流,Netscape提出的是捕获流。

事件冒泡

事件冒泡指事件开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。

事件捕获

事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。

DOM事件流

DOM2级事件规定事件流的三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。

事件处理程序

  • W3C:target.addEventListener( event,listener,useCapture );

  •      true:表示在捕获阶段调用事件处理程序
    
  •      false:表示在冒泡阶段调用事件处理程序
    
  •      removeEventListerner()
    
  • IE:target.attachEvent( type,listener );

  •     detachEvent()
    

事件委托

事件委托:只需要再DOM树中尽量高的层次上添加一个事件处理程序

  • 节省内存,减少事件注册
  • 新增加的子对象无需再对其进行绑定

demo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions