js有一种事件触发,格式为:dom
dom.addEventListener("事件",函数,true/false)函数
因而,就产生了一下问题,见例子:测试
<div id="outDiv">
<div id="middleDiv">
<div id="inDiv">请在此点击鼠标。</div>
</div>
</div>spa
<div id="info"></div>.net
var outDiv = document.getElementById("outDiv");
var middleDiv = document.getElementById("middleDiv");
var inDiv = document.getElementById("inDiv");
var info = document.getElementById("info");htm
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);事件
到底,我单击inDiv的时候会先触发那个呢?get
咱们知道,最后一个参数是用来决定函数的触发是用冒泡仍是事件捕获来触发的。(true为事件捕抓)io
因而通过测试,先后触发顺序以下:function
•全为 false 时,触发顺序为:inDiv、middleDiv、outDiv;
•全为 true 时,触发顺序为:outDiv、middleDiv、inDiv;
•outDiv 为 true,其余为 false 时,触发顺序为:outDiv、inDiv、middleDiv;
•middleDiv 为 true,其余为 false 时,触发顺序为:middleDiv、inDiv、outDiv;
详细出处参考:http://www.jb51.net/article/42862.htm
最后获得以下结论:
1,true比false先触发
2,true按照外层先内层后的顺序触发
3,false按照内层先外层后的顺序触发