事件捕获与事件冒泡
2016-05-23 16:31
162 查看
1、事件捕获与事件触发是两种不同的事件触发顺序。
2、事件冒泡
事件触发时按照:目标元素(target)向顶级根元素的方向依次触发同类型事件。
div -> body -> html -> document
3、事件捕获
事件触发时按照:根元素(docunment)向目标元素(target)的方向依次触发同类型事件。
document
-> html -> body->
div
4、dom模型中的事件
同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,
从document对象开始,也在document对象结束。文本节点也触发事件(在IE中不会)。
事件捕获阶段:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。
事件冒泡阶段:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。
5、假设一个元素div,它有一个下级元素p。
<div>
<p>元素</p>
</div>
这两个元素都绑定了click事件,如果用户点击了p,它在div和p上都触发了click事件,那这两个事件处理程序哪个先执行呢?事件顺序是什么?
两种模型
以前,Netscape和Microsoft是不同的实现方式。
Netscape中,div先触发,这就叫做事件捕获。
Microsoft中,p先触发,这就叫做事件冒泡
程序员可以自己选择绑定事件时采用事件捕获还是事件冒泡,方法就是绑定事件时通过addEventListener函数,
它有三个参数,第三个参数若
是true, 则表示采用事件捕获,若是false,则表示采用事件冒泡。
ele.addEventListener('click',doSomething2,true)
true=捕获
false=冒泡
传统绑定事件方式
在一个支持W3C DOM的浏览器中,像这样一般的绑定事件方式,是采用的事件冒泡方式。
ele.onclick = doSomething2
6、阻止事件冒泡传播:
W3c: stopPropagation();
IE: cancelBubble = true;
7、阻止时间默认行为(form表单的提交、href的点击跳转)
W3c:
preventDefault();
IE:
window.event.returnValue = false;
2、事件冒泡
事件触发时按照:目标元素(target)向顶级根元素的方向依次触发同类型事件。
div -> body -> html -> document
3、事件捕获
事件触发时按照:根元素(docunment)向目标元素(target)的方向依次触发同类型事件。
document
-> html -> body->
div
4、dom模型中的事件
同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,
从document对象开始,也在document对象结束。文本节点也触发事件(在IE中不会)。
事件捕获阶段:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。
事件冒泡阶段:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。
5、假设一个元素div,它有一个下级元素p。
<div>
<p>元素</p>
</div>
这两个元素都绑定了click事件,如果用户点击了p,它在div和p上都触发了click事件,那这两个事件处理程序哪个先执行呢?事件顺序是什么?
两种模型
以前,Netscape和Microsoft是不同的实现方式。
Netscape中,div先触发,这就叫做事件捕获。
Microsoft中,p先触发,这就叫做事件冒泡
程序员可以自己选择绑定事件时采用事件捕获还是事件冒泡,方法就是绑定事件时通过addEventListener函数,
它有三个参数,第三个参数若
是true, 则表示采用事件捕获,若是false,则表示采用事件冒泡。
ele.addEventListener('click',doSomething2,true)
true=捕获
false=冒泡
传统绑定事件方式
在一个支持W3C DOM的浏览器中,像这样一般的绑定事件方式,是采用的事件冒泡方式。
ele.onclick = doSomething2
6、阻止事件冒泡传播:
W3c: stopPropagation();
IE: cancelBubble = true;
7、阻止时间默认行为(form表单的提交、href的点击跳转)
W3c:
preventDefault();
IE:
window.event.returnValue = false;
相关文章推荐
- jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
- jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
- jQuery中事件对象e的事件冒泡用法示例介绍
- 一个小例子解释如何来阻止Jquery事件冒泡
- JavaScript 事件冒泡简介及应用
- Jquery阻止事件冒泡 event.stopPropagation
- jquery 事件冒泡的介绍以及如何阻止事件冒泡
- JS 事件冒泡 示例代码
- js如何取消事件冒泡
- jquery ajax应用中iframe自适应高度问题解决方法
- javascript事件冒泡和事件捕获详解
- javascript事件冒泡详解和捕获、阻止方法
- js之事件冒泡和事件捕获详细介绍
- 详解javascript事件冒泡
- jQuery阻止事件冒泡具体实现
- 兼容各大浏览器的JavaScript阻止事件冒泡代码
- js事件监听机制(事件捕获)总结
- DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
- 事件切换和事件冒泡
- angularjs 1.x 阻止事件冒泡