addEventListener的第三个参数
2015-11-05 14:59
441 查看
JS中的事件广播分为三个阶段:事件捕获,事件处理的调用,事件冒泡。
1.事件捕获:沿DOM树向里面走下去,走到 一个节点
2.事件调用:定义在节点上的事件处理程序(如:click mouseove等)
3.事件冒泡:从这个节点沿DOM树向上走。(这里会调用父元素的事件处理调用,可用stopPropagation在IE中用cancelbubble)
在了解了事件广播后再来看addEventListener()的第三个参数。为boolean值,false为事件冒泡(即在第三阶段),true为事件捕获(即在第一阶段)。
其实原来仅有两个参数,可IE是事件冒泡,所以定义了第三个参数。但IE的事件冒泡的顺序更符合人们的日常思维(所以IE也不是一无是处),所以有错就改。
可这有什么意义呢?
当它进行到第三阶段时,问题来了。
如果父子节点都有click事件处理,当我们点击子节点时。
会先调用子节点的click,
这时会冒泡到父节点。
再调用父节点的click。
可我们并不需要父节点的click啊!
这时需要调用stopPropagation(),在IE中使用cancelbubble();
本文完结
Code is Poetry!
1.事件捕获:沿DOM树向里面走下去,走到 一个节点
2.事件调用:定义在节点上的事件处理程序(如:click mouseove等)
3.事件冒泡:从这个节点沿DOM树向上走。(这里会调用父元素的事件处理调用,可用stopPropagation在IE中用cancelbubble)
在了解了事件广播后再来看addEventListener()的第三个参数。为boolean值,false为事件冒泡(即在第三阶段),true为事件捕获(即在第一阶段)。
其实原来仅有两个参数,可IE是事件冒泡,所以定义了第三个参数。但IE的事件冒泡的顺序更符合人们的日常思维(所以IE也不是一无是处),所以有错就改。
可这有什么意义呢?
当它进行到第三阶段时,问题来了。
如果父子节点都有click事件处理,当我们点击子节点时。
会先调用子节点的click,
这时会冒泡到父节点。
再调用父节点的click。
可我们并不需要父节点的click啊!
这时需要调用stopPropagation(),在IE中使用cancelbubble();
本文完结
Code is Poetry!
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- Ruby on Rails中jquery_ujs组件拖慢速度的问题解决
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法