您好,登錄后才能下訂單哦!
今天小編給大家分享的是jquery中on和bind有哪些區(qū)別,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
jquery on和bind的區(qū)別:1、bind方法給每個(gè)子元素都添加一個(gè)事件,會(huì)影響到性能,而on方法不會(huì);2、bind動(dòng)態(tài)添加元素時(shí),不能動(dòng)態(tài)綁定事件,而on方法可以。
該方法適用于所有品牌電腦
jquery on和bind的區(qū)別:
on()方法查看源碼可發(fā)現(xiàn)bind()
與delegate()
底層都是用on()方法實(shí)現(xiàn);
函數(shù)簽名: bind(type, [data], fn) ,on(type,[selector],[data],fn) .
舉個(gè)栗子:
<html> <head> <meta charset="UTF-8"> <title></title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> </head> <body> <div> <button id="add">添加新的p元素</button> <p>第一個(gè)p元素</p> <p>第二個(gè)p元素</p> <p>第三個(gè)p元素</p> <p>第四個(gè)p元素</p> <p>第五個(gè)p元素</p> </div> <script> $("#add").click(function(){ $("div").append("<p>這是一個(gè)新的p元素</p>"); }); </script>
用法:
$('div p').bind('click',function(){ alert($(this).text()); }) $("div").on("click","p",function(){ alert($(this).text()); })
優(yōu)缺點(diǎn)比較:
bind()方法:
缺點(diǎn):
1.萬(wàn)一子元素非常多,給每個(gè)子元素都添加一個(gè)事件,會(huì)影響到性能;
2.動(dòng)態(tài)添加元素時(shí),不能動(dòng)態(tài)綁定事件
優(yōu)點(diǎn):為單個(gè)元素綁定事件時(shí)書(shū)寫(xiě)方便.(忽略)
on()方法:
1.解決上面兩個(gè)缺點(diǎn).
2.采用事件委托機(jī)制,不是直接為p元素綁定事件,而是為其父元素(或祖先元素也可)綁定事件,當(dāng)在div內(nèi)任意元素上點(diǎn)擊時(shí),事件會(huì)一層層從event target向上冒泡,直至到達(dá)你為其綁定事件的元素,就會(huì)執(zhí)行事件.
3.調(diào)用的時(shí)候也可能出現(xiàn)問(wèn)題。如果事件目標(biāo)在DOM樹(shù)中很深的位置,這樣一層層冒泡上來(lái)查找與選擇器匹配的元素,又會(huì)影響到性能.
總結(jié):
1.選擇器匹配到的元素比較多時(shí),不要用bind()迭代綁定
2.用id選擇器時(shí),可以用bind()
3.需要給動(dòng)態(tài)添加的元素綁定時(shí),用delegate()或者on()
4.用delegate()和on()方法,dom樹(shù)不要太深
5.盡量使用on()
關(guān)于jquery中on和bind有哪些區(qū)別就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。