事件流解析,阻止冒泡和默认行为
事件流描述的是从页面接收事件的顺序,分为三种
1事件冒泡流
IE的事件流为冒泡流,即从最具体的元素向上传播到最不具体的节点,所有现代浏览器都支持冒泡流。
2事件捕获流
Netscape的事件流为捕获流,和冒泡流相反,老版本不支持,慎用。
3DOM2级事件流
DOM事件流包括三个阶段,事件捕获阶段、处于目标阶段、事件冒泡阶段。
我们常用的冒泡会有一些负面影响,我们该怎么办呢?
function
stopBubble(e) {
//如果提供了事件对象,则这是一个非IE浏览器
if
( e && e.stopPropagation )
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
//否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble =
true
;
}
阻止默认行为的方法
- function stopBubble(e) {
- //如果提供了事件对象,则这是一个非IE浏览器
- if(e && e.stopPropagation) {
- //因此它支持W3C的stopPropagation()方法
- e.stopPropagation();
- } else {
- //否则,我们需要使用IE的方式来取消事件冒泡
- window.event.cancelBubble = true;
- }
- }