事件冒泡和事件捕获 分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题。
事件流:描述的是从页面中接收事件的顺序。
事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流。
冒泡型事件流:
事件的传播是从最特定的事件目标到最不特定的事件目标。即从DOM树的叶子到根。
捕获型事件流:
事件的传播是从最不特定的事件目标到最特定的事件目标。即从DOM树的根到叶子。事件捕获的思想就是不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。
结构上(非视觉上)嵌套关系的元素,会存在事件冒泡的功能,即同一事件, 自子元素冒泡向父元素。(自底向上)
IE没有捕获事件。
结构上(非视觉上)嵌套关系的元素,会存在事件捕获功能,即同一事件, 自父元素捕获至子元素(事件源元素)。(自顶向下)
1.W3C标准event.stopPropagation(); 但不支持ie9以下版本。
2.IE独有 event.cancelBubble = true; 谷歌也有。
// 示列
1.event || window.event 用于IE
2.事件源对象: