javascript的事件流模型都有什么?


事件流:當你在頁面觸發一個點擊事件后,頁面上不僅僅有一個元素響應該事件而是多個元素響應同一個事件,因為元素是在容器中的。事件發生的順序就是事件流,不同的瀏覽器對事件流的處理不同。

 

 

冒泡事件流:

當觸發一個節點的事件時,會從當前節點開始,依次觸發其祖先節點的同類型事件,直到DOM根節點 。

 

捕獲事件流:

當觸發一個節點的事件時,會從DOM根節點開始,依次觸發其祖先節點的同類型事件,

知道當前節點自身 。

 

DOM事件流:

dom同時支持兩種事件模型,但捕獲性事件先開始,從document開始也結束於document,dom模型的獨特之處在於文本也可以觸發事件。

 

什么時候是事件冒泡?事件捕獲?

當使用addEventListener綁定事件,第三個參數設為true時表示事件捕獲,除此之外的所有事件均為事件冒泡。

廣州品牌設計公司https://www.houdianzi.com PPT模板下載大全https://redbox.wode007.com

阻止事件冒泡
①IE10之前,使用e.cancelBubble = true;

②IE10之后,使用 e.stopPropagation();

function myParagraphEventHandler(e) { e = e || window.event; if (e.stopPropagation) { e.stopPropagation(); //IE10之后 } else { e.cancelBubble = true; //IE10之前 } }

 

阻止默認事件
①IE10之前:e.returnValue = false;

②IE10之后:e.stopPropagation();

function eventHandler(e) { e = e || window.event; // 防止默認行為 if (e.preventDefault) { e.preventDefault(); //IE10之外 }else { e.returnValue = false; //IE10之前 } }


免責聲明!

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



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