国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 福贡县| 曲阳县| 师宗县| 西藏| 和田市| 名山县| 章丘市| 神木县| 张家界市| 泊头市| 嵊泗县| 平利县| 黑河市| 阿荣旗| 巢湖市| 山阴县| 迭部县| 太湖县| 彩票| 贵定县| 镇平县| 桦川县| 武夷山市| 青州市| 吉林省| 普安县| 曲沃县| 论坛| 福鼎市| 翁源县| 兴宁市| 江门市| 浦江县| 连南| 两当县| 开封县| 图片| 江源县| 建宁县| 聊城市| 鹤峰县|