js事件传播的一个疑惑
2015-04-02 16:38
162 查看
在学习事件传播的时候,发现一个问题,当时是这样子的。
我给多层元素分别绑定了冒泡和捕获事件。按道理应该先从外向内执行完所有的捕获事件,再由内向外执行所有的冒泡事件。
但是天不随人愿啊,有个元素偏偏先执行了冒泡事件,后执行了捕获事件。
我怎么查资料也没弄明白,当时就放下了。今天突然发现自己这个不按规矩的元素正好是我所有bom元素的最里层的元素。
我就想啊,可能是到最里面浏览器就不去区分它绑定的事件是否是捕获还是冒泡了吧。
于是乎我就证明了一下:
第一:我先把最内层元素的捕获事件和冒泡事件换了注册顺序,发现执行顺序也变了耶!看来是不区分了啊!
第二:我往把最里层元素里又添加了一层元素,这时候当你触发在新添加的元素上面的时候,发现两种事件终于按规矩执行了。
现在终于明白了,当你触发某个最具体的元素时,这个元素本身的事件是不区分冒泡还是捕获的。
我给多层元素分别绑定了冒泡和捕获事件。按道理应该先从外向内执行完所有的捕获事件,再由内向外执行所有的冒泡事件。
但是天不随人愿啊,有个元素偏偏先执行了冒泡事件,后执行了捕获事件。
我怎么查资料也没弄明白,当时就放下了。今天突然发现自己这个不按规矩的元素正好是我所有bom元素的最里层的元素。
我就想啊,可能是到最里面浏览器就不去区分它绑定的事件是否是捕获还是冒泡了吧。
于是乎我就证明了一下:
第一:我先把最内层元素的捕获事件和冒泡事件换了注册顺序,发现执行顺序也变了耶!看来是不区分了啊!
第二:我往把最里层元素里又添加了一层元素,这时候当你触发在新添加的元素上面的时候,发现两种事件终于按规矩执行了。
现在终于明白了,当你触发某个最具体的元素时,这个元素本身的事件是不区分冒泡还是捕获的。
相关文章推荐
- js中为一个对象添加事件的正确方法
- js中给一个元素添加事件
- 使用js写点击一个事件使页面返回顶部以及控制一个元素在右下角的固定位置的方法
- 一个简单的js事件,循环table并自动计算总价
- 一个失去焦点事件中——单引号与双引号带来的疑惑
- 利用js实现一个按钮可选择多个事件
- 一个关于文本框的javascript事件疑惑
- JS扑捉一个按钮事件之外的其他事件
- js:window.onload事件 让一个js事件执行多个函数
- noet2 系统Android4.1.1版本中js touchmove事件只执行一个的问题
- 发现一个有用的js事件onpropertychange
- 一个JS读秒调用按钮事件
- 一个理解js动态创建节点并注册事件及传递参数的例子
- 用js触发自动一个click事件
- js关于隔几秒中执行一个事件的写法
- js显示隐藏效果,其中注意了一个事件的应用
- 解决js添加一个按钮,让这个按钮也获得初始的事件,绑定到新生成的DOM
- window.addEventListener来解决让一个js事件执行多个函数
- js多个对象绑定一个事件的方法