1. 程式人生 > >js的事件冒泡,事件捕獲

js的事件冒泡,事件捕獲

capture func fun == alt lis select tlist con

addEventListener() 方法可以指定 "useCapture" 參數來設置傳遞事件類型:false→冒泡 true→捕獲 默認false。

內部元素為p標簽,外部元素為div標簽,實驗效果圖如下:

技術分享圖片

在 冒泡 中,內部元素的事件會先被觸發,然後再觸發外部元素,順序:內部==>外部

css:
.whb100{width: 100px;height: 100px;border:1px dotted red}
.whb200{width: 200px;height: 200px;border:1px dotted #2ea6df}
.center{margin-left: 25%;margin-top: 25%;}
html:
<div class="whb200 useCaptureFalse" id=""> <p class="whb100 center useCaptureFalse2"></p> </div> js: var useCaptureFalse=document.querySelector(".useCaptureFalse") var useCaptureFalse2=document.querySelector(".useCaptureFalse2") useCaptureFalse2.addEventListener("click", function() { alert(" 你點擊了 p 元素 !"); }, false); useCaptureFalse.addEventListener("click", function(event) { alert("你點擊了 div 元素!"); console.log(event) }, false);

技術分享圖片

技術分享圖片

在 捕獲 中,外部元素的事件會先被觸發,然後再觸發內外部元素,順序:外部==>內部

css:
.whb100{width: 100px;height: 100px;border:1px dotted red}
.whb200{width: 200px;height: 200px;border:1px dotted #2ea6df}
.center{margin-left: 25%;margin-top: 25%;}
html:
<div  class="whb200 useCaptureFalse" id="">
      <p  class="whb100 center useCaptureFalse2"></p>
</div>
js:
var useCaptureFalse=document.querySelector(".useCaptureFalse") var useCaptureFalse2=document.querySelector(".useCaptureFalse2") useCaptureFalse2.addEventListener("click", function() { alert(" 你點擊了 p2 元素 !"); }, false); useCaptureFalse.addEventListener("click", function(event) { alert("你點擊了 div2 元素!"); console.log(event) }, false);

技術分享圖片

技術分享圖片

 

js的事件冒泡,事件捕獲