事件冒泡与事件捕获

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提出事件捕获流

你可能感兴趣的:(事件冒泡与事件捕获)