在javascript中,事件對象(event)是用來記錄一些事件發(fā)生時的相關(guān)信息的對象;事件對象只有事件發(fā)生時才會產(chǎn)生,并且只能是事件處理函數(shù)內(nèi)部訪問,在所有事件處理函數(shù)運行結(jié)束后,事件對象就被銷毀。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
什么是事件對象(event):
事件對象是用來記錄一些事件發(fā)生時的相關(guān)信息的對象。
事件對象只有事件發(fā)生時才會產(chǎn)生,并且只能是事件處理函數(shù)內(nèi)部訪問,在所有事件處理函數(shù)運行結(jié)束后,事件對象就被銷毀!
注:其實事件一直都是存在的(不管有沒有綁定 或 監(jiān)聽),它只是沒有事件處理程序而已?。?!
JavaScript事件是:瀏覽器、文檔(document)窗口中的發(fā)生的特定的交互瞬間;而JavaScript和HTML之間的交互行為就是通過事件來觸發(fā)的。
事件處理程序:
事件處理程序:我們用戶在頁面中進(jìn)行的點擊這個動作,鼠標(biāo)移動的動作,網(wǎng)頁頁面加載完成的動作等,都可以稱之為事件名稱,
即:click、mousemove、load等都是事件的名稱。響應(yīng)某個事件的函數(shù)則稱為事件處理程序,或者叫做事件偵聽器。
事件類型:
在JavaScript中事件大至分為了三大類,分別是一般事件、表單事件、頁面事件這3種。
-
UI事件:如load、unload、error、resize、scroll、select、DOMActive,是用戶與頁面上的元素交互時觸發(fā)的。
-
焦點事件:如blur、DOMFocusIn、DOMFocusOut、focus、focusin、focusout,在元素獲得或失去焦點的時候觸發(fā),這些事件當(dāng)中,最為重要的是blur和focus,有一點需要引起注意,這一類事件不會發(fā)生冒泡!
-
鼠標(biāo)與滾輪事件:如click、dblclick、mousedown、mouseenter、mouseleave、mousemove、mouseout、mouseover、mouseup,是當(dāng)用戶通過鼠標(biāo)在頁面執(zhí)行操作時所觸發(fā)的。
-
滾輪事件:mousewheel(IE6+均支持)、DOMMouseScroll(FF支持的,與mousewheel效果一樣)。是使用鼠標(biāo)滾輪時觸發(fā)的。
-
文本事件:textInput,在文檔中輸入文本觸發(fā)。
-
鍵盤事件:keydown、keyup、keypress,當(dāng)用戶通過鍵盤在頁面中執(zhí)行操作時觸發(fā)。
-
合成事件:DOM3級新增,用于處理IME的輸入序列。所謂IME,指的是輸入法編輯器,可以讓用戶輸入在物理鍵盤上找不到的字符。compositionstart、compositionupdate、compositionend三種事件。
-
變動事件:DOMsubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMAttrModified、DOMCharacterDataModified等,當(dāng)?shù)讓覦OM結(jié)構(gòu)發(fā)生變化時觸發(fā)。IE8-不支持。
-
變動名稱事件:指的是當(dāng)元素或者屬性名變動時觸發(fā),當(dāng)前已經(jīng)棄用!
對于事件的基本類型,隨著HTML5的出現(xiàn)和發(fā)展,又新增了HTML5事件、設(shè)備事件(單點觸控)、觸摸事件touch、手勢事件等各種事件等
其他事件如下
資源事件
事件名稱 | 何時觸發(fā) |
---|---|
error | 資源加載失敗時。 |
abort | 正在加載資源已經(jīng)被中止時。 |
load | 資源及其相關(guān)資源已完成加載。 |
beforeunload | window,document 及其資源即將被卸載。 |
unload | 文檔或一個依賴資源正在被卸載。 |
網(wǎng)絡(luò)事件
事件名稱 | 何時觸發(fā) |
---|---|
online | 瀏覽器已獲得網(wǎng)絡(luò)訪問。 |
offline | 瀏覽器已失去網(wǎng)絡(luò)訪問。 |
WebSocket 事件
事件名稱 | 何時觸發(fā) |
---|---|
open | WebSocket 連接已建立。 |
message | 通過 WebSocket 接收到一條消息。 |
error | WebSocket 連接異常被關(guān)閉(比如有些數(shù)據(jù)無法發(fā)送)。 |
close | WebSocket 連接已關(guān)閉。 |
CSS 動畫事件
事件名稱 | 何時觸發(fā) |
---|---|
animationstart | 某個 CSS 動畫開始時觸發(fā)。 |
animationend | 某個 CSS 動畫完成時觸發(fā)。 |
animationiteration | 某個 CSS 動畫完成后重新開始時觸發(fā)。 |
CSS 過渡事件
事件名稱 | 何時觸發(fā) |
---|---|
transitionstart |
監(jiān)聽過渡事件開始時觸發(fā)。 |
transitionrun |
監(jiān)聽過渡事件進(jìn)行時觸發(fā)。 |
transitionend |
監(jiān)聽過渡事件結(jié)束時觸發(fā)。 |
打印事件
事件名稱 | 何時觸發(fā) |
---|---|
beforeprint | 打印機已經(jīng)就緒時觸發(fā)。 |
afterprint | 打印機關(guān)閉時觸發(fā)。 |
剪貼板事件
事件名稱 | 何時觸發(fā) |
---|---|
cut | 已經(jīng)剪貼選中的文本內(nèi)容并且復(fù)制到了剪貼板。 |
copy | 已經(jīng)把選中的文本內(nèi)容復(fù)制到了剪貼板。 |
paste | 從剪貼板復(fù)制的文本內(nèi)容被粘貼。 |
【