js中addEventListener中第3個參數


<div id="id1" style="width:200px; height:200px; position:absolute; top:100px; left:100px; background-color:blue; z-index:4">
      <div id="id2" style="width:200px; height:200px; position:absolute; top:20px; left:70px; background-color:green; z-index:1"></div>
  </div>

 addEventListener中的第三個參 數是useCapture, 一個bool類型。當為false時為冒泡獲取(由里向外),true為capture方式(由外向里)。

document.getElementById('id1').addEventListener('click', function() { console.log('id1');}, false);

document.getElementById('id2').addEventListener('click', function() { console.log('id2');}, false);

 點擊id2的div結果是: id2, id1

document.getElementById('id1').addEventListener('click', function() { console.log('id1');}, false);

document.getElementById('id2').addEventListener('click', function() { console.log('id2');}, true);

 結果是:id1,id2

 

DOM方法 addEventListener() 和 removeEventListener()是用來分配和刪除事件的函數。 這兩個方法都需要三個參數,分別為:

事件名稱(String)、要觸發的事件處理函數(Function)、指定事件處理函數的時期或階段(boolean)。

DOM事件流如圖(剪自javascript高級程序設計):

由圖可知捕獲過程要先於冒泡過程

當第三個參數設置為true就在捕獲過程中執行,反之就在冒泡過程中執行處理函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM