DOM事件類

  • 基本概念:DOM事件的級別
  • DOM事件模型(冒泡和捕獲)
  • DOM事件流
  • 描述DOM事件捕獲的集體流程
  • Event對象的常見應(yīng)用
  • 自定義事件
DOM事件類 事件級別
  • DOM0 element.onclick=function(){}
  • DOM2
    element.addEventListener('click',function(){},false)
  • DOM3(增加了多種事件類型,比如鼠標事件,鍵盤事件)
    element.addEventListener('keyup',function(){},false)false默認為冒泡階段
DOM事件模型

就是冒泡和捕獲兩種,捕獲是從上往下,冒泡是從當前元素也就是目標元素往上。


DOM事件流

第一階段:捕獲
第二階段:目標階段
第三階段:冒泡


描述DOM事件捕獲的集體流程

(補充:document.documentElement獲取html這個節(jié)點)
第一個接收到的對象是window,然后傳給document,再傳給html,再傳給目標元素的父級元素,然后傳給目標元素。



然后再往回一層一層冒泡

Event對象的常見應(yīng)用

分別對應(yīng):
1.阻止默認事件
2.阻止事件冒泡
3.設(shè)置事件優(yōu)先級。阻止事件冒泡并且阻止相同事件的其他偵聽器被調(diào)用。如果有多個相同類型事件的事件監(jiān)聽函數(shù)綁定到同一個元素,當該類型的事件觸發(fā)時,它們會按照被添加的順序執(zhí)行。如果其中某個監(jiān)聽函數(shù)執(zhí)行了 event.stopImmediatePropagation() 方法,則當前元素剩下的監(jiān)聽函數(shù)將不會被執(zhí)行。


            p.addEventListener("click", (event) => {
              alert("我是p元素上被綁定的第二個監(jiān)聽函數(shù)");
              event.stopImmediatePropagation();
              // 執(zhí)行stopImmediatePropagation方法,阻止click事件冒泡,并且阻止p元素上綁定的其他click事件的事件監(jiān)聽函數(shù)的執(zhí)行.
            }, false);

            p.addEventListener("click",(event) => {
              alert("我是p元素上被綁定的第三個監(jiān)聽函數(shù)");
              // 該監(jiān)聽函數(shù)排在上個函數(shù)后面,該函數(shù)不會被執(zhí)行
            }, false);

            document.querySelector("div").addEventListener("click", (event) => {
              alert("我是div元素,我是p元素的上層元素");
              // p元素的click事件沒有向上冒泡,該函數(shù)不會被執(zhí)行
            }, false);

4.往往用于事件委托中,獲取當前被點擊的元素
5.當前所綁定的事件對象,如事件委托中所綁定的父級對象。

自定義事件

通過new Event創(chuàng)建自定義事件
dispatchEvent來觸發(fā)事件。

代碼演示:



注意:觸發(fā)的時候,不是事件名,是事件對象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,688評論 1 11
  • 基本概念:DOM事件的級別 DOM事件模型:事件冒泡事件捕獲 DOM事件流 描述DOM事件捕獲的具體流程 Even...
    言歌不言歌閱讀 987評論 0 1
  • 基本概念:DOM事件的級別 DOM0:element.onclick=function(){}DOM1:(沒有設(shè)計...
    一個廢人閱讀 343評論 0 0
  • DOM事件的級別 DOM0 : element.onclick = function () {}DOM2: ele...
    翔阿翔阿翔閱讀 288評論 0 7
  • 時間是個畫家 把一個姑娘畫成了媽媽 并在媽媽的每一寸肌膚上 留下深愛的傷疤 畫家不動聲色地 在媽媽細嫩修長的手上 ...
    瞿目佳閱讀 346評論 4 3

友情鏈接更多精彩內(nèi)容