冒泡与捕获

冒泡与捕获是DOM事件的一种事件机制,也是一种事件流。

基础知识

1.操作系统最先知道鼠标点击,浏览器次之,因为操作系统是权限最高的软件。

2.在一个页面里面,子元素被点击,意味着父元素也被点击了。

图中 不论我的鼠标放在红色或绿色的div中,只要点击都会显示最外层div也同时被点击了。

3.如果我同时监听了 child 和 parent,那么谁先通知我?这是个问题。

捕获阶段

parent 先通知,child 后通知。


如图,输出结果依次为先点击红色区域,再点击绿色区域。

冒泡阶段

child 先通知,parent 后通知

onclick 就是在冒泡阶段被通知

IE 一开始就支持冒泡。


如图,输出结果依次为先点击红色区域,再点击绿色区域。

W3C事件模型

支持两种:

1
2
button.addEventListener('click', fn, true) // 捕获 Capture Phase
button.addEventListener('click', fn) // 冒泡 Bubbling Phase

__END__

o0Chivas0o
文章作者:o0Chivas0o
文章出处冒泡与捕获
作者签名:Rich ? DoSomethingLike() : DoSomethingNeed()
版权声明:文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处