jQuery1.9+中刪除了live以后的替代方法
根據(jù)jQuery的官方描述,live方法在1.7中已經(jīng)不建議使用,在1.9中刪除了這個(gè)方法。并建議在以后的代碼中使用on方法來(lái)替代。
on方法可以接受三個(gè)參數(shù):事件名、觸發(fā)選擇器、事件函數(shù)。
需要特別注意的是:on方法中間的這個(gè)觸發(fā)選擇器就是你將要添加的HTML元素的類名、id或者元素名,使用它就可以實(shí)現(xiàn)live的效果。
例如我的html文檔中已經(jīng)有了一個(gè)id為parent的div,我將要在這個(gè)div內(nèi)部再動(dòng)態(tài)添加一個(gè)class為son的span,然后我為這個(gè)span綁定一個(gè)事件,那么我需要這樣寫:
$('#parent').on('click','.son',function(){alert('test')});
這個(gè)觸發(fā)選擇器實(shí)際上就是在 JQ內(nèi)部判斷了一次事件參數(shù)的$(e.target).is(selector),只有觸發(fā)對(duì)象匹配觸發(fā)選擇器才會(huì)觸發(fā)。這是利用了事件冒泡的機(jī)制來(lái)完成 的,原本的live也是使用冒泡機(jī)制所以既然on可以實(shí)現(xiàn)那么live也就沒(méi)有存在的必要了,只不過(guò)為了兼容讓它從1.7茍延殘喘的活到了1.9而已。
這篇文章也沒(méi)啥內(nèi)容了,接下來(lái)就用這個(gè)功能做點(diǎn)有意義的事情示范下吧~ 在低版本IE中A標(biāo)簽在鼠標(biāo)按下時(shí)候會(huì)出現(xiàn)虛線邊框,這是由focus造成的。我們只要在全局事件中做點(diǎn)手腳就能解決這個(gè)問(wèn)題。在現(xiàn)代瀏覽器中focus是不冒泡的,但是低版本瀏覽器中可以冒泡。所以對(duì)于低版本瀏覽器中對(duì)focus使用live是有效的。在jQuery1.9之前的版本我們可以這樣寫:
$("a").live("focus",function(){
this.blur();
});
jQuery1.9之后由于live被刪除了,所以應(yīng)該這樣寫:
$(document).on("focus","a",function(){
this.blur();
});
還要注意個(gè)問(wèn)題,如果是從live的寫法換成on的寫法別忘了調(diào)整調(diào)用鏈。因?yàn)閘ive的返回值是事件觸發(fā)的對(duì)象,而使用on則是在容器對(duì)象上。
//jQuery1.9-
$("#panel").find("div").live("click",function(){
alert("x");
}).addClass("x");
//jQuery1.9+
$("#panel").on("click","div",function(){
alert("x");
}).find("div").addClass("x");
注意最后的find("div"),其它就沒(méi)什么問(wèn)題了。
下面是官方說(shuō)明
http://jquery.com/upgrade-guide/1.9/#live-removed
- jQuery EasyUI 開源插件套裝 完全替代ExtJS
- 深入理解jQuery中l(wèi)ive與bind方法的區(qū)別
- jQuery中.live()方法的用法深入解析
- 解析jQuery的三種bind/One/Live事件綁定使用方法
- jQuery中bind,live,delegate與one方法的用法及區(qū)別解析
- jquery live()調(diào)用不存在的解決方法
- jQuery的live()方法對(duì)hover事件的處理示例
- jQuery中對(duì)未來(lái)的元素綁定事件用bind、live or on
- jQuery 1.9使用$.support替代$.browser的使用方法
- jQuery 1.9移除了$.browser可以使用$.support來(lái)替代
- jQuery中用dom操作替代正則表達(dá)式
- 淺談被jQuery拋棄的函數(shù)及替代函數(shù)
- jQuery中bind(),live(),delegate(),on()綁定事件方法實(shí)例詳解
- jquery ui dialog替代confirm實(shí)例分析
相關(guān)文章
jquery插件corner實(shí)現(xiàn)圓角邊框的方法
這篇文章主要介紹了jquery插件corner實(shí)現(xiàn)圓角邊框的方法,實(shí)例分析了jQuery插件corner的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
基于jQuery實(shí)現(xiàn)多標(biāo)簽頁(yè)切換的效果(web前端開發(fā))
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)多標(biāo)簽頁(yè)切換的效果(web前端開發(fā))的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
jQuery timers計(jì)時(shí)器簡(jiǎn)單應(yīng)用說(shuō)明
大家都知道jQuery很強(qiáng)大,也有很多效果很帥的插件,下面介紹下jQuery定時(shí)器插件jQuery Timers,那JS都自帶有定時(shí)器,為什么要使用Jquery的呢?2010-10-10
jquery ajax提交表單數(shù)據(jù)的兩種方式
貌似AJAX越來(lái)越火了,作為一個(gè)WEB程序開發(fā)者要是不會(huì)這個(gè)感覺(jué)就要落伍,甚至有可能在求職的時(shí)候?qū)冶惶蕴N乙彩且粋€(gè)WEB程序開發(fā)者,當(dāng)然我也要“隨波逐流”一把,不然飯碗不保?。?2009-11-11
jQuery+CSS3實(shí)現(xiàn)點(diǎn)贊功能
本篇文章主要介紹了jQuery+CSS3實(shí)現(xiàn)點(diǎn)贊功能的示例代碼。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
jQuery Dialog 打開時(shí)自動(dòng)聚焦的解決方法(兩種方法)
這篇文章主要介紹了jQuery Dialog 打開時(shí)自動(dòng)聚焦的解決方法,及jquery dialog打開時(shí),自動(dòng)聚焦在第一個(gè)控件上的方法,對(duì)jquery dialog相關(guān)知識(shí)感興趣的朋友通過(guò)本文一起學(xué)習(xí)吧2016-11-11

