jquery.on()超級方法
成都創(chuàng)新互聯(lián)是一家專業(yè)提供澄海企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、成都網(wǎng)站建設、H5響應式網(wǎng)站、小程序制作等業(yè)務。10年已為澄海眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡公司優(yōu)惠進行中。
歸納
在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)
有on 方法的 你可以先試下 用下click 方法 如果 click 也不行 估計是 jquery 循序 搞錯 或者是沒有 讀取到 jquery 文件
你這個沒問題啊,我執(zhí)行過的,除了你打開和關閉沒有包引號,其他都沒問題
events:一個或多個用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。
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()寫法
這里的關鍵就是第二個參數(shù)'selector'在起作用了。它是一個過濾器的作用,只有被選中元素的后代元素才會觸發(fā)事件。
delegate() 是1.4引入的,目的是通過祖先元素來代理委派后代元素的事件綁定問題,某種程度上和live()優(yōu)點相似。只不過live()是通過document元素委派,而delegate則可以是任意的祖先節(jié)點。使用on()實現(xiàn)代理的寫法和delegate()基本一致。
1、delegate()的寫法
2、on()寫法
貌似第一個和第二個參數(shù)的順序顛倒了一下,別的基本一樣。
當你在給一個元素綁定事件時,這個元素必須存在,否則就綁定失敗。很明顯,$(".sb1 p")在事前是不存在的(是通過點擊按鈕才添加進去的),所以事件無法綁定,點擊也就無效了。解決辦法一是動態(tài)綁定事件,就是在點擊按鈕添加p的時候一并把事件綁定進去;方法二就是采用事件委托,把p的事件冒泡給父元素.sb1,即 $(".sb1").on("click","p",function(){...,這樣的話即使sb1中是空的也不妨礙事件綁定了(新添加的p也會自動觸發(fā)click事件)。根據(jù)你這代碼的情況,建議使用方法二。
分享文章:jqueryon問題,jquery解決了什么問題
路徑分享:http://aaarwkj.com/article20/dsspejo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、App開發(fā)、搜索引擎優(yōu)化、網(wǎng)站排名、全網(wǎng)營銷推廣、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)