javascript事件處理--關於事件的一些基礎定義

當web瀏覽器加載完文檔,用戶把鼠標指針移到超鏈接上或者敲擊鍵盤時,web瀏覽器都會產生事件。

請注意,事件本身不是一個需要定義的技術名詞。簡而言之,事件就是web瀏覽器通知應用程序發生了什麼事情。事件不是javascript對象,然後會有一些與事件相關的對象出現在源代碼中,它們需要技術說明,因此,本章從一些重要的定義開始。

事件類型(event type)是一個用來說明發生什麼類型事件的字符串。例如:“mouseover”表示用戶移動鼠標,“keydown”表示鍵盤上某個鍵被按下。

事件目標(event target)是發生的事件與之相關的對象。當講事件時,我們必須同時指明事件類型和事件目標。例如元素的click事件、window上的load事件。在javascript客戶端應用程序中,window、document、element對象是最常見的事件目標。

事件處理程序(event handler)或者事件監聽程序(event listener)是處理或相應事件的函數。應用程序通過指明事件類型和事件目標,在web瀏覽器中註冊它們的事件處理函數。當在特定的事件目標上發生特定類型的事件後,瀏覽器會調用相關的處理程序。

事件對象(event object )是與特定事件相關且包含該事件詳細信息的對象。事件對象作爲參數傳遞給事件處理函數。所有事件對象都有用來指定事件類型的type屬性和指定事件目標的target屬性。例如:鼠標事件的事件對象包含鼠標指針的座標,而鍵盤事件的事件對象包含按下的鍵和輔助鍵的信息。

事件傳播是瀏覽器決定哪個對象觸發其事件處理程序的過程。對於單個事件的特點事件(如,的click事件),必須是不能傳播的。傳播是指當文檔元素上發生某類型的事件時,它們會向上傳播。例:如果用戶移動鼠標指針到超鏈接上,在定義這個鏈接的“a”元素首先會觸發mouseover事件,然後再向上傳播,在容器元素上觸發這個事件。
事件傳播的另外一種形式稱爲事件捕獲,在容器上註冊的特定事件處理程序有機會在事件傳播到真實目標之前攔截它(或者叫捕獲它)。例如:當超鏈接上發生click事件,瀏覽器的特定事件是按照鏈接加載頁面。事件處理程序可返回一個適當的值,調用事件對象的某個方法或設置事件對象的某個屬性來阻止默認操作的發生。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章