DOM事件标准定义了两种事件流,这俩种事件流有着显著的不同并且可能对你的应用有着相当大的影响。这俩种事件流分别是捕获(Capture)和冒泡(Bubble)。
Netscape和微软之前关于这方面各自提出了解决方案,其中Netscape选择实现了捕获事件流,而微软则实现了冒泡事件流。最后W3C决定组合这俩种方法,并且大多数新浏览器都遵循这两种事件流方式。
对于Safari、chrome、Firefox这三个用addEventListener('监听事件类型的名称',匿名函数,处理此事件的事件流(true和false))。
对于IE和Opera用于attachEvent('on'+监听事件类型的名称,匿名函数,处理此事件的事件流false)这里我们注意的是对于IE6~10,IE11不支持。IE不支持事件捕获。
这里true指的是事件捕获、false指的是事件冒泡【主要是指事件发生在哪个阶段】
事件冒泡:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。事件由子元素向祖先元素传播的,就 像气泡从水底向水面上浮一样。当事件在某一DOM元素被触发时,例如用户在客户名字节点上点击鼠标,事件将跟随着该节点继承自的各个父节点冒泡穿过整个的DOM节点层次,直到它 遇到依附有该事件类型处理器的节点,此时,该事件是onclick事件。在冒泡过程中的任何时候都可以终止事件的冒泡。
事件捕获:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。捕获阶段是一个和冒泡阶段完全相反的过程,即事件由祖先元素向子元素传播,和一个石子儿从水面向水底下沉一样。事件的处理将从DOM层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递。在这个过程中,事件会被从文档 根到事件目标元素之间各个继承派生的元素所捕获。
下图给出事件捕获和事件冒泡:
以上就是我个人对这个知识点的理解。