事件流

153 阅读2分钟
描述从页面中接收事件的顺序。分为事件冒泡 和 事件捕捉 
1. 事件冒泡
	IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最里端的元素节点(文档中嵌套最深的那个节点)接收,然后逐渐向上传播到最外端节点(文档)。
    div > body > html > Document  
    其中div  body html 是Element即元素节点
    所有现代浏览器都支持事件冒泡,但在具体实现上还是有一些差别。IE5.5 及更早版本中的事件冒泡会跳过 <html> 元素(从 <body> 直接跳到 document )。IE9、Firefox、Chrome 和 Safari 则将事件一直冒泡到 window 对象。
2. 事件捕捉
	Netscape Communicator团队提出的一种事件流。事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前捕获它。
    传播顺序于冒泡相反,可以理解为true 和 false 的关系。
 3. DOM 事件流
 	“DOM2级事件” 规定的事件流包括三个阶段:事件捕捉阶段,处于目标阶段 和事件冒泡阶段。也可以理解为提供事件, 获取事件 和响应事件 这三个阶段。
    目标获取事件和处理事件的位置定位在冒泡事件阶段的一部分
    多数支持 DOM事件流的浏览器都实现了一种特定的行为;即使“DOM2 级事件”规范明确要求捕获阶段不会涉及事件目标,但 IE9、Safari、Chrome、Firefox 和 Opera 9.5 及更高版本都会在捕获阶段触发事件对象上的事件。结果,就是有两个机会在目标对象上面操作事件。