javascript事件模型執行個體分析,javascript執行個體分析

來源:互聯網
上載者:User

javascript事件模型執行個體分析,javascript執行個體分析

本文執行個體講述了javascript事件模型的用法。分享給大家供大家參考。具體分析如下:

一、事件模型

冒泡型事件(Bubbling):事件由葉子節點沿祖先節點一直向上傳遞到根節點
捕獲型事件(Capturing):由DOM樹最頂元素一直到最精確的元素,與冒泡型事件相反
DOM標準事件模型:DOM標準既支援冒泡型事件,也支援捕獲型事件,可以說是兩者的結合體,首先是捕獲型,接著冒泡傳遞

二、事件對象

在IE瀏覽器中事件對象是window的一個屬性,在DOM標準中,event必須作為唯一的參數傳給事件處理函數

獲得相容的event 對象:

function(event){   //event 是作為DOM標準的參數傳入處理函數  event = event ?event : window.event; } 

在IE中,事件的對象包含在event的srcElement中,而在DOM標準中,對象包含在target屬性中
獲得相容的event 對象指向的元素:

var target =event.srcElement ? event.srcElement : event.target ;

前提是,保證event對象已經正確的擷取

三、事件監聽器

IE下,註冊的監聽器逆序執行,即後面註冊的先執行

element.attachEvent('onclick',observer); //註冊監聽器element.detachEvent('onclick',observer) //移除監聽器

第一個參數為事件名稱,第二個為回調處理函數

DOM標準下:

element.addEventListener('click',observer,useCapture) element.removeEventListener('click',observer,useCapture)

第一個參數為事件名稱,沒有“on”的首碼,第二個參數為回調處理函數,第三個參數說明回呼函數是在捕獲階段調用還是冒泡階段調用,預設true為捕獲階段

四、事件傳遞

相容地取消瀏覽器的事件傳遞

function someHandler(event){   event = event || window.event;   if(event.stopPropagation) //DOM標準   event.stopPropagation();   else   event.cancelBubble = true; //IE標準 } 

取消事件傳遞後的預設處理

function someHandler(event){   event = event || window.event;   if(event.preventDefault) //DOM標準   event. preventDefault ();   else   event.returnValue = true; //IE標準 }

希望本文所述對大家的javascript程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.