真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jQuerybind、delegate、live和on比較

JQuery的delegate()方法是給頁面里的元素(或者頁面里未來將會有的元素)綁定事件,同樣的從結(jié)果來看JQuery的bind()方法同樣也是給元素綁定事件,但是它(bind)只能給頁面中當(dāng)前已經(jīng)存在的元素去綁定事件。

創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站營銷推廣,域名與空間,網(wǎng)絡(luò)空間,網(wǎng)站改版維護(hù)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,請聯(lián)系創(chuàng)新互聯(lián)。

JQuery的live()方法同樣也是給元素綁定事件,但是它(live)在頁面有改動的時候,JQuery把相應(yīng)函數(shù)綁定到$(document)元素上。任何時候只要有事件冒泡到document節(jié)點(diǎn)上,它就查看該事件是否是一個綁定事件,以及該事件的目標(biāo)元素與這一選擇器是否匹配,如果都是的話,則執(zhí)行函數(shù)。JQuery 1.7以后就不支持live()了。

JQuery的on()方法同樣也是給元素綁定事件,它(on)是整合了之前的三種方式的新事件綁定機(jī)制。

例子:

這是一個段落。

請點(diǎn)擊任意一個 p 元素,它會消失。包括本段落。

注釋:通過使用 delegate() 方法,而不是 live(),只有 div 元素中的 p 元素會受到影響。

標(biāo)紅的P是通過點(diǎn)擊button才能被加載到頁面的,也就是說,在document.ready的時候頁面里還沒有這個P元素,所以說需要用delegate()方法給P綁定事件,此時用click()或者bind()是做不到給可能被加載到這個頁面的P元素綁定事件的。

但是這個button是頁面中已經(jīng)存在的,用click就可以給綁定上事件。當(dāng)然了,用delegate()也行。

為什么選擇.live()或.delegate()而不是.bind()

畢竟,bind看起來似乎更加的明確和直接,難道不是嗎?嗯,有兩個原因讓我們更愿意選擇delegate或live而不是bind:

1. 為了把處理程序附加到可能還未存在于DOM中的DOM元素之上。因?yàn)閎ind是直接把處理程序綁定到各個元素上,它不能把處理程序綁定到還未存在于頁面中的元素之上。

2. 如果你運(yùn)行了$('a').bind(…),而后新的鏈接經(jīng)由AJAX加入到了頁面中,則你的bind處理程序?qū)τ谶@些新加入的鏈接來說是無效的。而另一方面live和delegate則是被綁定到另一個祖先節(jié)點(diǎn)上,因此其對于任何目前或是將來存在于該祖先元素之內(nèi)的元素都是有效的。

3. 或者為了把處理程序附加到單個元素上或是一小組元素之上,監(jiān)聽后代元素上的事件而不是循環(huán)遍歷并把同一個函數(shù)逐個附加到DOM中的100個元素上。把處理程序附加到一個(或是一小組)祖先元素上而不是直接把處理程序附加到頁面中的所有元素上,這種做法帶來了性能上的好處。


網(wǎng)站名稱:jQuerybind、delegate、live和on比較
文章起源:http://weahome.cn/article/ghjogh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部