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