發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
瀏覽jQuery的deprecated列表,發(fā)現(xiàn)live()和die()在里面了,趕緊看了一下,發(fā)現(xiàn)從jQuery1.7開始,jQuery引入了全新的事件綁定機(jī)制,on()和off()兩個(gè)函數(shù)統(tǒng)一處理事件綁定。因?yàn)樵诖酥坝?bind(), live(), delegate()等方法來處理事件綁定,jQuery從性能優(yōu)化以及方式統(tǒng)一方面考慮決定推出新的函數(shù)來統(tǒng)一事件綁定方法并且替換掉以前的方法。
on(events,[selector],[data],fn) events:一個(gè)或多個(gè)用空格分隔的事件類型和可選的命名空間,如"click"或"keydown.myPlugin" 。 selector:一個(gè)選擇器字符串用于過濾器的觸發(fā)事件的選擇器元素的后代。如果選擇器為null或省略,當(dāng)它到達(dá)選定的元素,事件總是觸發(fā)。 data:當(dāng)一個(gè)事件被觸發(fā)時(shí)要傳遞event.data給事件處理函數(shù)。 fn:該事件被觸發(fā)時(shí)執(zhí)行的函數(shù)。 false 值也可以做一個(gè)函數(shù)的簡寫,返回false。 替換bind() 當(dāng)?shù)诙€(gè)參數(shù)'selector'為null時(shí),on()和bind()其實(shí)在用法上基本上沒有任何區(qū)別了,所以我們可以認(rèn)為on()只是比bind()多了一個(gè)可選的'selector'參數(shù),所以on()可以非常方便的替換掉bind()
替換live() 在 1.4之前相信大家非常喜歡使用live(),因?yàn)樗梢园咽录壎ǖ疆?dāng)前以及以后添加的元素上面,當(dāng)然在1.4之后delegate()也可以做類似的事情了。live()的原理很簡單,它是通過document進(jìn)行事件委派的,因此我們也可以使用on()通過將事件綁定到document來達(dá)到 live()一樣的效果。
live()寫法
//function code here. }); on()寫法
//function code here. }); 這里的關(guān)鍵就是第二個(gè)參數(shù)'selector'在起作用了。它是一個(gè)過濾器的作用,只有被選中元素的后代元素才會(huì)觸發(fā)事件。
替換delegate() delegate() 是1.4引入的,目的是通過祖先元素來代理委派后代元素的事件綁定問題,某種程度上和live()優(yōu)點(diǎn)相似。只不過live()是通過document元素委派,而delegate則可以是任意的祖先節(jié)點(diǎn)。使用on()實(shí)現(xiàn)代理的寫法和delegate()基本一致。
delegate()的寫法
//function code here. }); 貌似第一個(gè)和第二個(gè)參數(shù)的順序顛倒了一下,別的基本一樣。
總結(jié) jQuery 推出on()的目的有2個(gè),一是為了統(tǒng)一接口,二是為了提高性能,所以從現(xiàn)在開始用on()替換bind(), live(), delegate吧。尤其是不要再用live()了,因?yàn)樗呀?jīng)處于不推薦使用列表了,隨時(shí)會(huì)被干掉。如果只綁定一次事件,那接著用one()吧,這個(gè)沒有變化。
來自: 昵稱10504424 > 《工作》
0條評論
發(fā)表
請遵守用戶 評論公約
淺談Jquery中的bind(),live(),delegate(),on()綁定事件方式
淺談Jquery中的bind(),live(),delegate(),on()綁定事件方式。3.空格相隔方式:綁定較為死板,不能給事件單獨(dú)綁定函數(shù),適合處理多個(gè)事件調(diào)用同一函數(shù)情況;delegate() 為指定的元素(被選元素的子元素)...
jQuery中的bind(), live(), on(), delegate()
jQuery中的bind(), live(), on(), delegate()這個(gè)方法提供了一種在各種瀏覽器之間對事件處理的兼容性解決方案非常方便簡單的綁定事件到...
jQuery的事件綁定與事件委托
jQuery的事件綁定與事件委托。而在上圖執(zhí)行之后,click事件會(huì)接著向樹的根方向傳播,廣播到父元素,然后是每級的祖先元素,只要是它的某...
js、jq事件綁定方式總結(jié) click addEventListener
js、jq事件綁定方式總結(jié) click addEventListener一、JavaScript點(diǎn)擊事件綁定方法1.1 HTML onclick事件屬性。2.5 delegate()方法 undelegate()方法2.5.1 delegate()方法 為指定的元素(屬于被選元素的子...
jQuery三種事件綁定方式.bind(),.live(),.delegate()
.bind(), .live(), 和 .delegate()之間的區(qū)別并不明顯。但是理解它們的不同之處有助于寫出更簡潔的代碼,并防止我們的交互程序中出現(xiàn)沒...
jQuery的.bind()、.live()和.delegate()之間區(qū)別
jQuery的.bind()、.live()和.delegate()之間區(qū)別.bind() $(''a'').bind(''click'', function() { alert("That tickles!") });或者為了把處理程序附加到...
jQuery的.bind()、.live()和.delegate()之間的區(qū)別
.bind()、.live()和.delegate()之間的區(qū)別并非總是那么明顯的,然而,如果我們對所有的不同之處都有清晰的理解的話,那么這將會(huì)有助于我...
jQuery事件綁定on()、bind()與delegate() 方法詳解
jQuery事件綁定on()、bind()與delegate() 方法詳解。不是直接為p元素綁定事件,而是為其父元素(或祖先元素也可)綁定事件,當(dāng)在div內(nèi)任意元素上點(diǎn)擊時(shí),事件會(huì)一層層從event target向上冒泡,直至到達(dá)...
jQuery方法區(qū)別:click() bind() live() delegate()區(qū)別
jQuery方法區(qū)別:click() bind() live() delegate()區(qū)別。click(),bind(),live()都是執(zhí)行事件時(shí)使用的方法,他們之前是有一些區(qū)別的,我們在使用這些方法時(shí)應(yīng)該根據(jù)需要進(jìn)行選擇。2.click()方法是bind...
微信掃碼,在手機(jī)上查看選中內(nèi)容