詳解addEventListener的三個參數之useCapture

來源:互聯網
上載者:User

詳解addEventListener的三個參數之useCapture

 本文主要給大家介紹的是addEventListener的三個參數之中的useCapture參數的使用及樣本分享,有需要的小夥伴參考下

 

 

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,則內層的觸發先於外層。

以上就是本文的全部內容了,希望大家能夠喜歡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.