12.2.3 事件

頁面載入

ready(fn):當DOM載入就緒可以查詢及操縱時綁定一個要執行的函數,可以極大地提高web應用程序的響應速度。

有一個參數--對jQuery函數的引用--會傳遞到這個ready事件處理函數中。

可以給這個參數任意起一個名字,並因此可以不再擔心命名衝突而放心地使用$別名。

事件處理

on(eve,[sel],[data],fn):在選擇元素上綁定一個或多個事件的事件處理函數。

on()方法綁定事件處理程序到當前選定的jQuery對象中的元素。

events:一個或多個用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。

selector:一個選擇器字符串用於過濾器的觸發事件的選擇器元素的後代。

data:當一個事件被觸發時要傳遞event.data給事件處理函數。

fn:該事件被觸發時執行的函數。

off(eve,[sel],[fn]):fn:該事件被觸發時執行的函數。

off() 方法移除用.on()綁定的事件處理程序。

one(type,[data],fn):爲每一個匹配元素的特定事件(像click)綁定一個一次性的事件處理函數。

type:添加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。

data:將要傳遞給事件處理函數的數據映射。

fn:每當事件觸發時執行的函數。

trigger(type,[data]):在每一個匹配的元素上觸發某類事件。

type:一個事件對象或者要觸發的事件類型。

data:傳遞給事件處理函數的附加參數。

triggerHandler(type, [data]):這個特別的方法將會觸發指定的事件類型上所有綁定的處理函數。

但不會執行瀏覽器默認動作,也不會產生事件冒泡。

這個方法的行爲表現與trigger類似,但有以下三個主要區別:

  • 第一,他不會觸發瀏覽器默認事件。

  • 第二,只觸發jQuery對象集合中第一個元素的事件處理函數。

  • 第三,這個方法的返回的是事件處理函數的返回值,而不是據有可鏈性的jQuery對象。

此外,如果最開始的jQuery對象集合爲空,則這個方法返回 undefined 。

type:要觸發的事件類型。

data:傳遞給事件處理函數的附加參數。

事件切換

hover([over,]out):一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法。

over:鼠標移到元素上要觸發的函數。

out:鼠標移出元素要觸發的函數。

toggle([spe],[eas],[fn]):用於綁定兩個或多個事件處理器函數,以響應被選元素的輪流的 click 事件。

speed: 隱藏/顯示 效果的速度。默認是 “0"毫秒。可能的值:slow,normal,fast。”

easing:(Optional) 用來指定切換效果,默認是"swing",可用參數"linear"。

fn:在動畫完成時執行的函數,每個元素執行一次。

事件

blur([[data],fn]):當元素失去焦點時觸發 blur 事件。

data:blur([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的blur事件中綁定的處理函數。

change([[data],fn]):當元素的值發生改變時,會發生 change 事件。

data:change([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的change事件中綁定的處理函數。

click([[data],fn]):觸發每一個匹配元素的click事件。

data:click([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的click事件中綁定的處理函數。

dblclick([[data],fn]):當雙擊元素時,會發生 dblclick 事件。

data:dblclick([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的dblclick事件中綁定的處理函數。

focus([[data],fn]):當元素獲得焦點時,觸發 focus 事件。

可以通過鼠標點擊或者鍵盤上的TAB導航觸發。這將觸發所有綁定的focus函數,注意,某些對象不支持focus方法。

data:focus([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的focus事件中綁定的處理函數。

focusin([data],fn):當元素獲得焦點時,觸發 focusin 事件。

focusin事件跟focus事件區別在於,他可以在父元素上檢測子元素獲取焦點的情況。

data:focusin([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的focusin事件中綁定的處理函數。

focusout([data],fn):當元素失去焦點時觸發 focusout 事件。

focusout事件跟blur事件區別在於,他可以在父元素上檢測子元素失去焦點的情況。

data:focusout([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的focusout事件中綁定的處理函數。

keydown([[data],fn]):當鍵盤或按鈕被按下時,發生 keydown 事件。

註釋:如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。

data:keydown([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的keydown事件中綁定的處理函數。

keypress([[data],fn]):當鍵盤或按鈕被按下時,發生 keypress 事件。

keypress 事件與 keydown 事件類似,當按鈕被按下時,會發生該事件。

它發生在當前獲得焦點的元素上,不過,與 keydown 事件不同,每插入一個字符,就會發生 keypress 事件。

註釋:如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。

data:keypress([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的keypress事件中綁定的處理函數。

keyup([[data],fn])

當按鈕被鬆開時,發生 keyup 事件。它發生在當前獲得焦點的元素上。

註釋:如果在文檔元素上進行設置,則無論元素是否獲得焦點,該事件都會發生。

data:keyup([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的keyup事件中綁定的處理函數。

mousedown([[data],fn]):當鼠標指針移動到元素上方,並按下鼠標按鍵時,會發生 mousedown 事件。

mousedown 與 click 事件不同,mousedown 事件僅需要按鍵被按下,而不需要鬆開即可發生。

data:mousedown([Data], fn) 可傳入data供函數fn處理。

fn:在每一個匹配元素的mousedown事件中綁定的處理函數。

mouseenter([[data],fn]):當鼠標指針穿過元素時,會發生 mouseenter 事件。該事件大多數時候會與mouseleave 事件一起使用。

與 mouseover 事件不同,只有在鼠標指針穿過被選元素時,纔會觸發 mouseenter 事件。如果鼠標指針穿過任何子元素,同樣會觸發 mouseover 事件。

mouseleave([[data],fn]):當鼠標指針離開元素時,會發生 mouseleave 事件。該事件大多數時候會與mouseenter 事件一起使用。

與 mouseout 事件不同,只有在鼠標指針離開被選元素時,纔會觸發 mouseleave 事件。如果鼠標指針離開任何子元素,同樣會觸發 mouseout 事件。

mousemove([[data],fn]):當鼠標指針在指定的元素中移動時,就會發生 mousemove 事件。

mousemove事件處理函數會被傳遞一個變量——事件對象,其.clientX 和 .clientY 屬性代表鼠標的座標。

mouseout([[data],fn]):當鼠標指針從元素上移開時,發生 mouseout 事件。

該事件大多數時候會與 mouseover 事件一起使用。

註釋:與 mouseleave 事件不同,不論鼠標指針離開被選元素還是任何子元素,都會觸發 mouseout 事件。只有在鼠標指針離開被選元素時,纔會觸發 mouseleave 事件。

mouseover([[data],fn]):當鼠標指針位於元素上方時,會發生 mouseover 事件。

該事件大多數時候會與 mouseout 事件一起使用。

註釋:與 mouseenter 事件不同,不論鼠標指針穿過被選元素或其子元素,都會觸發 mouseover 事件。只有在鼠標指針穿過被選元素時,纔會觸發 mouseenter 事件。

mouseup([[data],fn]):當在元素上放鬆鼠標按鈕時,會發生 mouseup 事件。

與 click 事件不同,mouseup 事件僅需要放鬆按鈕。當鼠標指針位於元素上方時,放鬆鼠標按鈕就會觸發該事件。

resize([[data],fn]):當調整瀏覽器窗口的大小時,發生 resize 事件。

scroll([[data],fn]):當用戶滾動指定的元素時,會發生 scroll 事件。

select([[data],fn]):當 textarea 或文本類型的 input 元素中的文本被選擇時,會發生 select 事件。

submit([[data],fn]):當提交表單時,會發生 submit 事件。

延遲對象

def.done(d,[d]):當延遲成功時調用一個函數或者數組函數。

該參數可以是一個函數或一個函數的數組。

當延遲成功時,doneCallbacks被調用。

回調執行是依照他們添加的順序。

一旦deferred.done()返回延遲對象,延遲對象的其它方法也可以鏈接到了這裏,包括增加.done()方法。

當延遲解決,doneCallbacks執行使用參數提供給resolve或resolveWith方法依照添加的順序調用。

def.fail(failCallbacks):當延遲失敗時調用一個函數或者數組函數.。

該參數可以是一個函數或一個函數的數組。

當延遲失敗時,doneCallbacks被調用。

回調執行是依照他們添加的順序。

一旦deferred.fail()返回延遲對象,延遲對象的其它方法也可以鏈接到了這裏,包括增加.done()方法。

當延遲解決,doneCallbacks執行使用參數提供給resolve或resolveWith方法依照添加的順序調用。

def.reject(args):拒絕延遲對象,並根據給定的參數調用任何失敗的回調函數。

當延遲被拒絕,任何failCallbacks添加的deferred.then或deferred.fail被調用。

回調按他們添加的順序執行。每個回調傳遞的args在deferred.reject()中調用。

之後添加任何failCallbacks遞延被拒絕進入狀態時,立即執行添加,使用的參數被傳遞給.reject()調用。

def.rejectWith(c,[a]):拒絕延遲的對象,並根據給定的上下文和參數調用任何失敗的回調函數。

當延遲被拒絕,任何doneCallbacks添加的deferred.then或deferred.fail被調用。

回調按他們添加的順序執行。

每個回調傳遞的args在deferred.reject()中調用。

之後添加任何failCallbacks遞延被拒絕進入狀態時,立即執行添加,使用的參數被傳遞給.reject()調用。

def.resolve(args):解決遞延對象,並根據給定的參數調用任何完成的回調函數。

當遞延被解決,任何failCallbacks添加的deferred.then或deferred.fail被調用。

回調按他們添加的順序執行。

每個回調傳遞的args在deferred.reject()中調用。

之後添加任何failCallbacks遞延被拒絕進入狀態時,立即執行添加,使用的參數被傳遞給.reject()調用。

def.resolveWith(c,[a]):解決遞延對象,並根據給定的上下文和參數調用任何完成的回調函數。

當遞延被解決,任何doneCallbacks 添加的deferred.then或deferred.fail被調用。

回調按他們添加的順序執行。

每個回調傳遞的args在deferred.reject()中調用。

之後添加任何failCallbacks遞延被拒絕進入狀態時,立即執行添加,使用的參數被傳遞給.reject()調用。

def.promise([ty],[ta]):返回一個 Promise 對象用來觀察當某種類型的所有行動綁定到集合,排隊與否還是已經完成。

def.always(al,[al]):篩選器和/或鏈Deferreds的實用程序方法。

def.notify(args):調用一個給定args的遞延對象上的進行中的回調 (progressCallbacks)。

def.notifyWith(c,[a]):去掉字符串起始和結尾的空格。

def.progress(proCal):當Deferred對象時生成進度通知時添加被訪問處理程序。

def.state():確定一個Deferred對象的當前狀態。

deferred.state()方法返回一個字符串,代表Deferred對象的當前狀態。 Deferred對象可以在三種狀態之一:

pending: Deferred對象是尚未完成狀態 (不是 “rejected” 或 “resolved”).

resolved: Deferred對象是在解決狀態,這意味着,deferred.resolve() 或者 deferred.resolveWith()被對象訪問和doneCallbacks被訪問(或在被調用的過程中) 。

rejected: Deferred對象是在被拒絕的狀態,這意味着,deferred.reject() 或者 deferred.rejectWith() 被對象訪問和failCallbacks被訪問(或在被調用的過程中) 。

這種方法主要是有用的調試,以確定的,例如,遞延是否已經得到解決,即使你打算拒絕它的內部代碼。

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