js事件的介紹


1. 事件的組成

? ? ? ? - 事件源:obox,綁定事件的元素。注意:事件目標(biāo),不是任何時(shí)候都等同于事件源。一般情況下是一個(gè)。

????????- 綁定事件的方式:on,賦值式綁定

? ? ? ? - 事件類(lèi)型:click,行為方式

????????- 賦值:= ,賦值式綁定事件的標(biāo)志之一

????????- 事件處理函數(shù):function(){console.log("點(diǎn)了一下")},觸發(fā)指定行為時(shí),要做的事情

????????- 隱藏的部分:事件對(duì)象? ??

2. 事件對(duì)象的介紹

? ??????- 事件發(fā)生時(shí)產(chǎn)生的對(duì)象,用來(lái)記錄事件發(fā)生時(shí)產(chǎn)生的信息

? ??????- 默認(rèn)隱藏,需要主動(dòng)獲取? ? ?獲取方式:var e = eve || window.event;

? ??????- 事件對(duì)象,事件的對(duì)象,沒(méi)有事件,不會(huì)有對(duì)象,所以,只能在事件處理函數(shù)中才能拿到事件對(duì)象,事件結(jié)束后,事件對(duì)象被瀏覽器回收

? ??????- 每次開(kāi)啟事件,會(huì)產(chǎn)生不同的事件對(duì)象

3. 事件對(duì)象身上的信息(屬性)

? ? ? ? 3.1 鼠標(biāo)事件對(duì)象的坐標(biāo)類(lèi)

? ??????????????- 相對(duì)于**事件目標(biāo)**的坐標(biāo)

? ??????????????????????- e.offsetX/Y

? ??????????????- 相對(duì)于瀏覽器的可視區(qū)域的坐標(biāo)

? ??????????????????????- e.clientX/Y

? ??????????????- 相對(duì)于頁(yè)面

? ??????????????????????- e.pageX/Y

? ??????????????- 相對(duì)于顯示器的坐標(biāo)

? ??????????????????????- e.screenX/Y

? ? ? ? 3.2?鍵盤(pán)事件對(duì)象的keyCode

? ??????????????- 獲取任意按鍵的ASC碼

? ??????????????????????- e.keyCode

? ??????????????- 獲取功能按鍵的狀態(tài):布爾值

? ??????????????????????- e.ctrlKey? ?e.shiftKey? ?e.altKey

4.事件流

? ??????- 事件被觸發(fā)的順序

? ??????????????- 從里向外:事件冒泡:一個(gè)元素的事件被觸發(fā)后,會(huì)依次向上觸發(fā)**所有** **父**元素的**相同**事件

? ??????????????- 從外向內(nèi):事件捕獲:一個(gè)元素的事件被觸發(fā)后,會(huì)從根元素依次向內(nèi)觸發(fā)所有**關(guān)聯(lián)子**元素的**相同**事件,直到發(fā)生事件的元素

? ??????????????- 當(dāng)前真正觸發(fā)事件的元素:目標(biāo)元素,發(fā)生在目標(biāo)元素身上的事件,叫目標(biāo)事件

? ??????- 執(zhí)行順序? ? ? ? ? ? 捕獲 => 目標(biāo)? =>? 冒泡

5. 事件的綁定方式

? ??????- 事件綁定常見(jiàn)分為兩種:DOM0級(jí),DOM2級(jí)

? ??????- DOM0級(jí):賦值式綁定,on綁定:

? ??????????????- 綁定方式:只能綁定一個(gè)事件處理函數(shù),因?yàn)橘x值會(huì)覆蓋????????元素.onclick = function(){};

? ??????????????- 刪除方式:利用賦值,覆蓋????????元素.onclick = null;

? ? ? ? - DOM2級(jí):監(jiān)聽(tīng)式綁定

? ??????????????- 綁定方式:可以重復(fù)綁定????????元素.addEventListener(參數(shù)1, 參數(shù)2, 參數(shù)3)??

? ??????????????- 刪除方式:????元素.removeEventListener(參數(shù)1, 參數(shù)2, 參數(shù)3)

6.事件委托

? ??????- 將多個(gè)子元素的相同事件利用事件冒泡委托給共同的頁(yè)面現(xiàn)存的父元素,通過(guò)事件目標(biāo)找到真正觸發(fā)事件的子元素,完成事件處理。的過(guò)程,叫事件委托

7.事件源和事件目標(biāo)

? ??????- 事件源:綁定事件的元素????????????必然可以通過(guò)this拿到

? ??????- 事件目標(biāo):觸發(fā)事件的元素? ? ? ? ?必然可以通過(guò)事件對(duì)象拿到????????var target = e.target || e.srcElement

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

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

  • 1.事件冒泡&捕獲 事件捕獲:從最外層的元素對(duì)象開(kāi)始觸發(fā),最后執(zhí)行最內(nèi)層的元素對(duì)象 事件冒泡:事件從最內(nèi)層的元素對(duì)...
    MoicA閱讀 520評(píng)論 0 0
  • (1)冒泡型事件:事件按照從最特定的事件目標(biāo)到最不特定的事件目標(biāo)(document對(duì)象)的順序觸發(fā)。 (2)捕獲型...
    逍遙g閱讀 482評(píng)論 2 0
  • 談起JavaScript的 事件,事件冒泡、事件捕獲、阻止默認(rèn)事件這三個(gè)話(huà)題,無(wú)論是面試還是在平時(shí)的工作中,都很...
    Brother_Nine閱讀 1,273評(píng)論 0 1
  • js事件是為了實(shí)現(xiàn)用戶(hù)交互,比如當(dāng)用戶(hù)鼠標(biāo)點(diǎn)擊或者鍵盤(pán)輸入時(shí),瀏覽器會(huì)監(jiān)聽(tīng)截獲并且通知js做出反饋執(zhí)行相應(yīng)的函數(shù),...
    深度剖析JavaScript閱讀 900評(píng)論 0 7
  • 談起JavaScript的 事件,事件冒泡、事件捕獲、阻止默認(rèn)事件這三個(gè)話(huà)題,無(wú)論是面試還是在平時(shí)的工作中,都很難...
    司小璇閱讀 384評(píng)論 0 1

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