事件传播与addEventListener()方法的第三个参数
2013-10-29 19:11
253 查看
个人主页:http://laichuanfeng.com/
JavaScript部分
当点击Test按钮时,事件执行顺序:second,first,third,为什么会这样?
这和当年Netscape与IE的浏览器之争分不开,他们两个浏览器的事件顺序不一致。
Netscape 支持事件捕捉(capturing),从顶层的父节点开始触发事件,从外到内传播。
IE则支持事件冒泡(bubbling),从最内层的节点开始触发事件,逐级冒泡直到顶层节点,从内向外传播。
然后我们来看看addEventListener()的第三个参数useCapture,这个参数决定要使用的事件处理程序的调用类型,
如果参数是true,事件处理程序以捕捉模式触发;
如果参数是false,事件处理程序以冒泡模式触发。
所以例子中函数调用的次序是:
捕获模式,second(),先于目标对象触发;
目标对象本身的事件处理程序,first();
冒泡模式,third(),在目标对象之后触发。
JavaScript部分
function ready() { document.getElementsByTagName("button")[0].addEventListener("click", first, false); document.getElementsByTagName("div")[0].addEventListener("click", second, true); document.getElementsByTagName("div")[0].addEventListener("click", third, false); }; function first() { alert("first"); } function second() { alert("second"); } function third() { alert("third"); }HTML部分
<body onload="ready()" > <div style="width:200px;height:200px;background-color:silver;"> <button type="button">Test</button> </div>
当点击Test按钮时,事件执行顺序:second,first,third,为什么会这样?
这和当年Netscape与IE的浏览器之争分不开,他们两个浏览器的事件顺序不一致。
Netscape 支持事件捕捉(capturing),从顶层的父节点开始触发事件,从外到内传播。
IE则支持事件冒泡(bubbling),从最内层的节点开始触发事件,逐级冒泡直到顶层节点,从内向外传播。
然后我们来看看addEventListener()的第三个参数useCapture,这个参数决定要使用的事件处理程序的调用类型,
如果参数是true,事件处理程序以捕捉模式触发;
如果参数是false,事件处理程序以冒泡模式触发。
所以例子中函数调用的次序是:
捕获模式,second(),先于目标对象触发;
目标对象本身的事件处理程序,first();
冒泡模式,third(),在目标对象之后触发。
相关文章推荐
- navtab方法参数以及事件
- [转]iCheck表单美化插件使用方法详解(含参数、事件等)
- Uploadify 3.2 参数属性、事件、方法函数详解
- 快速掌握小程序组件事件自定义参数的方法
- Android 在XML中的Onclick事件携带参数方法
- vue click.stop阻止点击事件继续传播的方法
- Uploadify 3.2 参数属性、事件、方法函数详解
- ListView中的事件onItemClick方法参数解析
- Uploadify 3.2 参数属性、事件、方法函数详解
- 快速掌握小程序组件事件自定义参数的方法
- javascript 附件事件时带参数的处理方法
- Knockout 事件传递参数的方法
- 低功耗蓝牙BLE之连接事件、连接参数和更新方法
- ListView集合中设置标记 setTag();方法带一个参数和两个参数的区别,以及设置标记时ViewHolder中的每一个属性控件都需要设置一次,否则在Item中每一个控件的点击事件中取出设置的标
- Uploadify 3.2 参数属性、事件、方法函数详解
- 3.一个斐波那契数列是由数字1、1、2、3、5、8、13、21、34等等组成的,其中每一个数字(从第三个数字起)都是前两个数字的和。创建一个方法,接受一个整数参数,并显示从第一个元素开始总共由该参数
- cvsaveimage第三个参数的设置方法
- javascript动态添加事件方法详解 || Javascript attachEvent传递参数的办法
- “回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。”的替代解决方法
- Uploadify 3.2 参数属性、事件、方法函数详解