详解addEventListener的三个参数之useCapture
作者:bea
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click");第二个参数表示要接收事件处理的函数;第三个参数为 useCapture,本文就讲解它。 代码如下: <div id="outDiv"> <div id="middleDiv"> <div id="inDiv">请在此点击鼠标。</div> </div> </div> <di
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,则内层的触发先于外层。
以上就是本文的全部内容了,希望大家能够喜欢。
有用 | 无用
代码如下:
<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,则内层的触发先于外层。
以上就是本文的全部内容了,希望大家能够喜欢。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery支持动态参数将函数绑定到事件上的方法
- jQuery实现预加载图片的方法
- jQuery检测鼠标左键和右键点击的方法
- jQuery对指定元素中指定字符串进行替换的方法
- jQuery经过一段时间自动隐藏指定元素的方法
- input输入框鼠标焦点提示信息
- 原生JS实现LOADING效果
- 使用jQuery实现图片遮罩半透明坠落遮挡
- jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
- JavaScript中使用Callback控制流程介绍
- jquery图片切换插件
- JavaScript中的方法重载实例
- jquery中attr和prop的区别分析
- JavaScript中扩展Array contains方法实例
- JavaScript中消除闭包的一般方法介绍
- jQuery实现的支持IE的html滑动条
- JavaScript计算两个日期时间段内日期的方法
- nw.js实现类似微信的聊天软件
- JavaScript控制table某列不显示的方法