十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
events:一個或多個用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。
創(chuàng)新互聯(lián)致力于成都做網(wǎng)站、成都網(wǎng)站建設,成都網(wǎng)站設計,集團網(wǎng)站建設等服務標準化,推過標準化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設服務!
selector:一個選擇器字符串用于過濾器的觸發(fā)事件的選擇器元素的后代。如果選擇器為null或省略,當它到達選定的元素,事件總是觸發(fā)。
data:當一個事件被觸發(fā)時要傳遞event.data給事件處理函數(shù)。
fn:該事件被觸發(fā)時執(zhí)行的函數(shù)。 false 值也可以做一個函數(shù)的簡寫,返回false。
當?shù)诙€參數(shù)'selector'為null時,on()和bind()其實在用法上基本上沒有任何區(qū)別了,所以我們可以認為on()只是比bind()多了一個可選的'selector'參數(shù),所以on()可以非常方便的替換掉bind()
在 1.4之前相信大家非常喜歡使用live(),因為它可以把事件綁定到當前以及以后添加的元素上面,當然在1.4之后delegate()也可以做類似的事情了。live()的原理很簡單,它是通過document進行事件委派的,因此我們也可以使用on()通過將事件綁定到document來達到 live()一樣的效果。
1、live()寫法
2、on()寫法
這里的關(guān)鍵就是第二個參數(shù)'selector'在起作用了。它是一個過濾器的作用,只有被選中元素的后代元素才會觸發(fā)事件。
delegate() 是1.4引入的,目的是通過祖先元素來代理委派后代元素的事件綁定問題,某種程度上和live()優(yōu)點相似。只不過live()是通過document元素委派,而delegate則可以是任意的祖先節(jié)點。使用on()實現(xiàn)代理的寫法和delegate()基本一致。
1、delegate()的寫法
2、on()寫法
貌似第一個和第二個參數(shù)的順序顛倒了一下,別的基本一樣。
.bind()是直接綁定在元素上
.live()則是通過冒泡的方式來綁定到元素上的。更適合列表類型的,綁定到document DOM節(jié)點上。和.bind()的優(yōu)勢是支持動態(tài)數(shù)據(jù)。
.delegate()則是更精確的小范圍使用事件代理,性能優(yōu)于.live()
.on()則是最新的1.9版本整合了之前的三種方式的新事件綁定機制
jquery.on()超級方法
歸納
在jquery的on方法中實現(xiàn)事件委托就更簡單了,on方法可以接受三個參數(shù):
第一個參數(shù)是事件名,可以只綁定一個事件,如on('click'),也可以綁定多個事件,如on('click dbclick mouseover')等
第二個參數(shù)是可選參數(shù),接受一個selector,當事件觸發(fā)元素符合selector時,會調(diào)用事件處理函數(shù)
注:此處用到 li:even 選擇器,后面有注解
第三個參數(shù)是自定義事件處理的回調(diào)函數(shù)。
1.jQuery :even 選擇器
選取每個帶有偶數(shù) index 值的元素(比如 2、4、6)
index 值從 0 開始,所有第一個元素是偶數(shù) (0)
2.jQuery :odd 選擇器
選取每個帶有奇數(shù) index 值的元素(比如 1、3、5)
HTML5 本身沒有一個事件或方法叫 on。jQuery 有一個 on 方法,甚麼 DOM 事件都能掛,掛了沒反應不是寫錯了就是瀏覽器不支援。
一、作用不同
1、on():在被選元素及子元素上添加一個或多個事件處理程序。
2、live():為被選元素附加一個或多個事件處理程序,并規(guī)定當這些事件發(fā)生時運行的函數(shù)。
二、觸發(fā)條件不同
1、on():使用 on() 方法添加的事件處理程序適用于當前及未來的元素(比如由腳本創(chuàng)建的新元素)。
2、live():通過 live() 方法附加的事件處理程序適用于匹配選擇器的當前及未來的元素(比如由腳本創(chuàng)建的新元素)。
三、語法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可選。規(guī)定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。
2、live():$(selector).live(event,data,function),其中event必需。規(guī)定附加到元素的一個或多個事件。由空格分隔多個事件。必須是有效的事件。
參考資料來源:百度百科-jQuery