一、作用不同

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出合山免費(fèi)做網(wǎng)站回饋大家。
1、on():在被選元素及子元素上添加一個(gè)或多個(gè)事件處理程序。
2、live():為被選元素附加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。
二、觸發(fā)條件不同
1、on():使用 on() 方法添加的事件處理程序適用于當(dāng)前及未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。
2、live():通過(guò) live() 方法附加的事件處理程序適用于匹配選擇器的當(dāng)前及未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。
三、語(yǔ)法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可選。規(guī)定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。
2、live():$(selector).live(event,data,function),其中event必需。規(guī)定附加到元素的一個(gè)或多個(gè)事件。由空格分隔多個(gè)事件。必須是有效的事件。
參考資料來(lái)源:百度百科-jQuery
jQuery綁定點(diǎn)擊事件可以使用其綁定事件函數(shù)
jquery中四個(gè)事件綁定方式(bind,live,delegate,on)
1、bind()????
簡(jiǎn)要描述
bind()向匹配元素添加一個(gè)或多個(gè)事件處理器。
使用方式
$(selector).bind(event,data,function)
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如?$(selector).bind("click",data,function);
多事件處理:
1.利用空格分隔多事件,例如?$(selector).bind("click dbclick mouseout",data,function);
2.利用大括號(hào)靈活定義多事件,例如?$(selector).bind({event1:function, event2:function, ...})
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)
綁定函數(shù);
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
適用Jquery版本
適用所有版本,但是根據(jù)官網(wǎng)解釋?zhuān)詮膉query1.7版本以后bind()函數(shù)推薦用on()來(lái)代替。
2、live()? ?
簡(jiǎn)要描述
live()?向當(dāng)前或未來(lái)的匹配元素添加一個(gè)或多個(gè)事件處理器;
使用方式
$(selector).live(event,data,function)
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如?$(selector).live("click",data,function);
多事件處理:1.利用空格分隔多事件,例如?$(selector).live("click dbclick mouseout",data,function);
2.利用大括號(hào)靈活定義多事件,例如?$(selector).live({event1:function, event2:function, ...})
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)綁定函數(shù);
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
適用Jquery版本
jquery1.9版本以下支持,jquery1.9及其以上版本刪除了此方法,jquery1.9以上版本用on()方法來(lái)代替。
3、delegate()
簡(jiǎn)要描述
delegate()?為指定的元素(被選元素的子元素)添加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。
使用方式
$(selector).delegate(childSelector,event,data,function)
childSelector:?必需項(xiàng);需要添加事件處理程序的元素,一般為selector的子元素;
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如?$(selector).delegate(childselector,"click",data,function);
多事件處理:1.利用空格分隔多事件,例如?$(selector).delegate(childselector,"click?dbclick mouseout",data,function);
2.利用大括號(hào)靈活定義多事件,例如?$(selector).delegate(childselector,{event1:function, event2:function, ...})
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)綁定函數(shù);
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
適用Jquery版本
jquery1.4.2及其以上版本;
4、on()
簡(jiǎn)要描述
on()?為指定的元素,添加一個(gè)或多個(gè)事件處理程序,并規(guī)定當(dāng)這些事件發(fā)生時(shí)運(yùn)行的函數(shù)。使用 on() 方法的事件處理程序適用于當(dāng)前或未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。
使用方式
$(selector).on(event,childselector,data,function)
event:必需項(xiàng);添加到元素的一個(gè)或多個(gè)事件,例如 click,dblclick等;
單事件處理:例如?$(selector).on("click",childselector,data,function);
多事件處理:1.利用空格分隔多事件,例如?$(selector).on("click?dbclick mouseout",childseletor,data,function);
2.利用大括號(hào)靈活定義多事件,例如?$(selector).on({event1:function, event2:function, ...},childselector);
3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;
大括號(hào)替代方式:綁定較為靈活,可以給事件單獨(dú)綁定函數(shù);
childSelector:?可選;需要添加事件處理程序的元素,一般為selector的子元素;
data:可選;需要傳遞的參數(shù);
function:必需;當(dāng)綁定事件發(fā)生時(shí),需要執(zhí)行的函數(shù);
適用Jquery版本
jquery1.7及其以上版本;jquery1.7版本出現(xiàn)之后用于替代bind(),live()綁定事件方式;
四種方式的異同和優(yōu)缺點(diǎn)
相同點(diǎn):
1.都支持單元素多事件的綁定;空格相隔方式或者大括號(hào)替代方式;
2.均是通過(guò)事件冒泡方式,將事件傳遞到document進(jìn)行事件的響應(yīng);
比較和聯(lián)系:
1.bind()函數(shù)只能針對(duì)已經(jīng)存在的元素進(jìn)行事件的設(shè)置;但是live(),on(),delegate()均支持未來(lái)新添加元素的事件設(shè)置;
2.bind()函數(shù)在jquery1.7版本以前比較受推崇,1.7版本出來(lái)之后,官方已經(jīng)不推薦用bind(),替代函數(shù)為on(),這也是1.7版本新添加的函數(shù),同樣,可以
用來(lái)代替live()函數(shù),live()函數(shù)在1.9版本已經(jīng)刪除;
3.live()函數(shù)和delegate()函數(shù)兩者類(lèi)似,但是live()函數(shù)在執(zhí)行速度,靈活性和CSS選擇器支持方面較delegate()差些
4.bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+;
總結(jié)
如果項(xiàng)目中引用jquery版本為低版本,推薦用delegate(),高版本jquery可以使用on()來(lái)代替,以上僅為個(gè)人看法
.bind()與.on()的區(qū)別:
(1)是否支持selector這個(gè)參數(shù)值。由于javascript的事件冒泡特性,如果在父元素上注冊(cè)了一個(gè)事件處理函數(shù),當(dāng)子元素上發(fā)生這個(gè)事件的時(shí)候,父元素上的事件處理函數(shù)也會(huì)被觸發(fā)。
如果使用on的時(shí)候,不設(shè)置selector,那么on與bind就沒(méi)有區(qū)別了。
(2)on綁定的事件處理函數(shù),對(duì)于未來(lái)新增的元素一樣可以的,和delegate效果相同,而bind則不行。?
(3) delegate用法與on()相同,只是參數(shù)的順序不同:
擴(kuò)展資料:
.bind()與.on()的實(shí)際應(yīng)用:
1.bind()是直接綁定在元素上 ,將一本地地址與一套接口捆綁。如無(wú)錯(cuò)誤發(fā)生,則bind()返回0。否則的話,將返回-1,應(yīng)用程序可通過(guò)WSAGetLastError()獲取相應(yīng)錯(cuò)誤代碼。
用于事件處理程序
function ClassName(){
this.eventHandler = (function(){
}).bind(this);
}
2.on()則實(shí)現(xiàn)事件代理, 可以在匹配元素上綁定一個(gè)或者多個(gè)事件處理函數(shù)。
(1) 用來(lái)綁定多事件,并且為同一函數(shù),如:
$('div').on('click mouseover',function(){
//do sth
});
(2)多個(gè)事件綁定不同函數(shù),如:
$('div').on({
'click':function(){
//do sth
},
'mouseover':function(){
//do sth
}
});
(3)事件代理,如:
html:
button id="bt1"按鈕1/button
jq:
$('#bt1').on('click',function(){
$('body').append('button按鈕2/button');
});
$('body').on('click','.bt2',function(){
console.log('這是bt2');
}
參考資料:百度百科-bind()
.bind()是直接綁定在元素上
.live()則是通過(guò)冒泡的方式來(lái)綁定到元素上的。更適合列表類(lèi)型的,綁定到document DOM節(jié)點(diǎn)上。和.bind()的優(yōu)勢(shì)是支持動(dòng)態(tài)數(shù)據(jù)。
.delegate()則是更精確的小范圍使用事件代理,性能優(yōu)于.live()
.on()則是最新的1.9版本整合了之前的三種方式的新事件綁定機(jī)制
對(duì),on前面的jquery對(duì)象要存在才可以。
jquery語(yǔ)法
.on(events [, selector] [, data], handler(eventObject))
我理解的是先把事件綁定到父元素上面,然后利用事件的冒泡檢查target是不是selector,如果是的話執(zhí)行handler。
網(wǎng)頁(yè)題目:jquery1.9on,jquery 183
轉(zhuǎn)載來(lái)源:http://chinadenli.net/article9/dsesjoh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站排名、電子商務(wù)、小程序開(kāi)發(fā)、、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)