jQuery1 9 中刪除了live以後的替代方法

2021-09-08 04:15:50 字數 1091 閱讀 7127

根據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());
這個觸發選擇器實際上就是在 jq內部判斷了一次事件引數的$(e.target).is(selector),只有觸發物件匹配觸發選擇器才會觸發。這是利用了事件冒泡的機制來完成 的,原本的live也是使用冒泡機制所以既然on可以實現那麼live也就沒有存在的必要了,只不過為了相容讓它從1.7苟延殘喘的活到了1.9而已。

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

$("a").live("focus",function());
jquery1.9之後由於live被刪除了,所以應該這樣寫:

$(document).on("focus","a",function());
還要注意個問題,如果是從live的寫法換成on的寫法別忘了調整呼叫鏈。因為live的返回值是事件觸發的物件,而使用on則是在容器物件上。

$("#panel").find("div").live("click",function()).addclass("x");

$("#panel").on("click","div",function()).find("div").addclass("x");

注意最後的find("div"),其它就沒什麼問題了。下面是官方說明

jQuery1 9 中刪除了live以後的替代方法

根據jquery的官方描述,live方法在1.7中已經不建議使用,在1.9中刪除了這個方法。並建議在以後的 中使用on方法來替代。on方法可以接受三個引數 事件名 觸發選擇器 事件函式。需要特別注意的是 on方法中間的這個觸發選擇器就是你將要新增的html元素的類名 id或者元素名,使用它就可以實現...

jquery1 9,判斷瀏覽器的版本 及型別

在之前的jquery版本中判斷可以用browser,但是1.9版本後去掉了。之前的版本可以這麼判斷 browser.msie browser.version 7.0 新版的怎麼判斷呢。在網上找到乙個不錯的方法,已經寫好的js方法,原址為 方法如下 將方法全部加入js中,然後browserdetect...

拷貝 Eclipse中刪除了tomcat後

今天在eclipse想把之前的tomcat 6刪掉,重新配置乙個,不料沒有下一步 cannot create a server using the selected type 這句話出現在視窗上面,應該不是很解決的問題.重啟下 eclipse,還是不行哦 出絕招了,呵呵.上網搜搜 還真的找到解決的方...