详解addEventListener的三个参数之useCapture


Posted in Javascript onMarch 16, 2015

addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click");第二个参数表示要接收事件处理的函数;第三个参数为 useCapture,本文就讲解它。

<div id="outDiv">

  <div id="middleDiv">

    <div id="inDiv">请在此点击鼠标。</div>

  </div>

</div>

<div id="info"></div>
var outDiv = document.getElementById("outDiv");

var middleDiv = document.getElementById("middleDiv");

var inDiv = document.getElementById("inDiv");

var info = document.getElementById("info");

outDiv.addEventListener("click", function () { info.innerHTML += "outDiv" + "<br>"; }, false);

middleDiv.addEventListener("click", function () { info.innerHTML += "middleDiv" + "<br>"; }, false);

inDiv.addEventListener("click", function () { info.innerHTML += "inDiv" + "<br>"; }, false);

上述是我们测试的代码,根据 info 的显示来确定触发的顺序,有三个 addEventListener,而 useCapture 可选值为 true 和 false,所以 2*2*2,可以得出 8 段不同的程序。

•全为 false 时,触发顺序为:inDiv、middleDiv、outDiv;
•全为 true 时,触发顺序为:outDiv、middleDiv、inDiv;
•outDiv 为 true,其他为 false 时,触发顺序为:outDiv、inDiv、middleDiv;
•middleDiv 为 true,其他为 false 时,触发顺序为:middleDiv、inDiv、outDiv;
•……

最终得出如下结论:

•true 的触发顺序总是在 false 之前;
•如果多个均为 true,则外层的触发先于内层;
•如果多个均为 false,则内层的触发先于外层。

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Javascript 判断 object 的特定类转载
Feb 01 Javascript
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
Sep 11 Javascript
详解JS面向对象编程
Jan 24 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
React学习笔记之高阶组件应用
Jun 02 Javascript
小程序测试后台服务的方法(ngrok)
Mar 08 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 #Javascript
jquery中radio checked问题
Mar 16 #Javascript
jquery中JSON的解析方式
Mar 16 #Javascript
浅谈js中的闭包
Mar 16 #Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 #Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 #Javascript
JavaScript中的DSL元编程介绍
Mar 15 #Javascript
You might like
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
新浪的图片新闻效果
2007/01/13 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
大学毕业感言
2014/01/10 职场文书
运动会广播稿50字
2014/01/26 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
2014年督导工作总结
2014/11/19 职场文书
大学生自荐信范文
2015/03/05 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫
Flink 侧流输出源码示例解析
2022/09/23 Servers