var evt = e ? e:window.event;
window.event? window.event.cancelBubble = true : evt.stopPropagation();
window.event? window.event.returnValue = false : evt.preventDefault();
阻止默认动作的发生
- 先查看
event.cancelable
属性来判断一个事件的默认动作是够可以被取消。若为false,则preventDefault
方法无效。 -
event.preventDefault()
在事件触发后的任何阶段调用该方法来取消该事件 -
preventDefault
方法会引起event.defaultPrevented
属性变为true.
事件冒泡
- 事件是默认的;
-
event.stopPropagation()
:终止事件再传播过程中的捕获、目标处理或冒泡的进一步传播;阻止冒泡、捕获和处于目标阶段 - 冒泡最终会冒泡到这个页面的
window
- 事件冒泡是相对独立的
事件捕获
-
addEventListener('click',fn,true);
第三个参数确定是否捕获。为true为事件捕获方式获得 - DOM3级的
stopImmediatePropagation()
阻止事件捕获,也可以阻止事件冒泡。
DOM事件流(DOM2级)
- 事件捕获阶段
- 处于目标阶段
- 事件冒泡阶段
IE 提出事件冒泡流
Netscape提出事件捕获流