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