国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

jQuery1.9+中刪除了live以后的替代方法

2024-05-06 16:31:31
字體:
供稿:網(wǎng)友

根據(jù)jQuery的官方描述,live方法在1.7中已經(jīng)不建議使用,在1.9中刪除了這個方法。并建議在以后的代碼中使用on方法來替代。

  on方法可以接受三個參數(shù):事件名、觸發(fā)選擇器、事件函數(shù)。

需要特別注意的是:on方法中間的這個觸發(fā)選擇器就是你將要添加的HTML元素的類名、id或者元素名,使用它就可以實現(xiàn)live的效果。

例如我的html文檔中已經(jīng)有了一個id為parent的div,我將要在這個div內(nèi)部再動態(tài)添加一個class為son的span,然后我為這個span綁定一個事件,那么我需要這樣寫:

$('#parent').on('click','.son',function(){alert('test')});

這個觸發(fā)選擇器實際上就是在 JQ內(nèi)部判斷了一次事件參數(shù)的$(e.target).is(selector),只有觸發(fā)對象匹配觸發(fā)選擇器才會觸發(fā)。這是利用了事件冒泡的機制來完成 的,原本的live也是使用冒泡機制所以既然on可以實現(xiàn)那么live也就沒有存在的必要了,只不過為了兼容讓它從1.7茍延殘喘的活到了1.9而已。

  這篇文章也沒啥內(nèi)容了,接下來就用這個功能做點有意義的事情示范下吧~ 在低版本IE中A標簽在鼠標按下時候會出現(xiàn)虛線邊框,這是由focus造成的。我們只要在全局事件中做點手腳就能解決這個問題。在現(xiàn)代瀏覽器中focus是不冒泡的,但是低版本瀏覽器中可以冒泡。所以對于低版本瀏覽器中對focus使用live是有效的。在jQuery1.9之前的版本我們可以這樣寫:

$("a").live("focus",function(){this.blur();}); jQuery1.9之后由于live被刪除了,所以應(yīng)該這樣寫:$(document).on("focus","a",function(){this.blur();}); 

還要注意個問題,如果是從live的寫法換成on的寫法別忘了調(diào)整調(diào)用鏈。因為live的返回值是事件觸發(fā)的對象,而使用on則是在容器對象上。

//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"),其它就沒什么問題了。

下面是官方說明

  http://jquery.com/upgrade-guide/1.9/#live-removed


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 无为县| 定西市| 承德县| 文水县| 平谷区| 达州市| 花莲县| 汾西县| 嘉义县| 资溪县| 惠州市| 漳平市| 仁寿县| 德安县| 新田县| 驻马店市| 麻江县| 双桥区| 涞水县| 鸡泽县| 康马县| 松潘县| 曲麻莱县| 太谷县| 盐池县| 若尔盖县| 北流市| 竹山县| 怀化市| 巴楚县| 平乡县| 高邮市| 抚顺市| 亳州市| 巢湖市| 兴安县| 黔西| 衢州市| 皮山县| 错那县| 东山县|