麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 09:40:54
字體:
來源:轉載
供稿:網友

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

  on方法可以接受三個參數:事件名、觸發選擇器、事件函數。

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

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

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

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

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

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

還要注意個問題,如果是從live的寫法換成on的寫法別忘了調整調用鏈。因為live的返回值是事件觸發的對象,而使用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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久亚洲精品久久国产一区二区 | jizzzxxxxhd| 性欧美在线视频 | 免费人成在线观看网站 | 久久91精品久久久久清纯 | 蜜桃一本色道久久综合亚洲精品冫 | 国产成人在线视频播放 | 看免费的毛片 | 国产在线地址 | 欧美第1页| 成人免费av在线 | 国产一区二区三区视频观看 | 亚洲小视频在线 | 91精品国| 亚洲午夜天堂吃瓜在线 | 国产午夜亚洲精品理论片大丰影院 | 欧美特黄a | 欧美成人一级 | 欧美一区二区三区久久精品视 | 性生活视频一级 | 国产亚洲美女精品久久久2020 | 9999视频 | 特一级毛片 | 一级看片免费视频 | 99亚洲| 国产成人精品免费视频大全最热 | 中文字幕国产一区 | 大学生a级毛片免费视频 | 特级黄色一级毛片 | 一本一本久久a久久精品综合小说 | 黄色成年在线观看 | 国产精品久久久网站 | 国产毛片网 | 精品二区在线观看 | 美女黄污视频 | 一级电影在线观看 | 成人午夜在线播放 | 国产91久久精品一区二区 | 永久av在线免费观看 | av在线在线 | 亚洲国产精品一区 |