一、标准事件流。ECMAScript标准规定事件流包括三个阶段。事件捕获阶段,处于目标阶段,事件冒泡阶段。
通过最简单的一段html代码来看:
复制代码
如果点击button之后,事件流应该是:(向下捕获)Document-->html节点-->body节点-->div节点-->button节点 {处于目标阶段} (向上冒泡) button节点-->div节点-->body节点-->html节点-->Document
二、非标准时间流。IE浏览器。
通过最简单的一段html代码来看:
复制代码
如果点击button之后,事件流应该是: {处于目标阶段} (向上冒泡) button节点-->div节点-->body节点-->html节点-->Document
大家可以看出差别了。ie浏览器当点击button是。是没有事件捕获阶段的。
三、组织时间的默认行为。
一般事件的执行顺序: 事件的捕获阶段-->处于目标阶段-->事件的冒泡阶段-->事件的默认行为。因为事件的默认行为在最后执行,所以我们就有了拦截它的条件。
以组织文本框获得焦点为例:
//阻止文本框获取焦点 var input=document.getElementById("inputText"); input.onmousedown=function(event){ event=event||window.event; if(event.preventDefault){ //非IE浏览器阻止事件默认行为 event.preventDefault(); }else{ event.returnValue=false;//IE浏览器阻止事件默认行为 } }复制代码