標籤:事件冒泡 sel var selector UNC log listener htm query
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的事件冒泡,事件捕獲