1.事件流描述的是从页面接收事件的顺序。
2.IE的事件流叫做事件冒泡,即事件开始时由最具体的元素来接收事件,然后逐级向上传播到较为不具体的节点;
3.Netscape团队提出的另外一种事件流叫做事件捕获。事件捕获的思想是不太具体节点最先接收事件,然后具体的节点应该最后接收到事件。
4.DOM2级事件规定事件流包括三个阶段:事件捕获阶段、出于目标阶段、事件冒泡阶段。首先发生的是事件捕获,为截获事件提供了机会,然后是实际的目标接收到事件。
最后是冒泡阶段,可以对这个阶段的事件作出响应。
5.取消事件冒泡:原因---只希望事件发生在目标元素而不是父元素上。方法:添加取消事件冒泡的方法;
6.不是所有的事件都可以冒泡或捕获,例如:blur、focus、load、unload
//阻止事件冒泡的通用函数
function stopBubble(e){
// 如果传入了事件对象,那么就是非ie浏览器
if(e&&e.stopPropagation){
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
}else{
//否则我们使用ie的方法来取消事件冒泡
window.event.cancelBubble = true;
}
}
参考文档:
http://www.cnblogs.com/zhenn/archive/2011/02/20/1959059.html
http://www.cnblogs.com/zhenn/archive/2011/02/19/1958748.html