jQuery中live()變更


開始的時候在jQuery.1.7.1中使用了.live()覺得很好用,特別是在綁定事件之后再加入的元素的事件綁定上很方便(第一次live之后以后添加的元素就不需要綁定啦)

后來jQuery更新到1.9.1,頁面中的.live報錯:"has no method live", 后來查了文檔才知道在新版本中做了修改。

jQuery.1.8.1:

$("#liveID").live("click",function(){alert("live click");});

jQuery.1.9.1:

$(document).on("click","#liveID",function(){alert("live click");});

 

jQuery網站上這么說的:

As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live().

This method provides a means to attach delegated event handlers to the document element of a page, which simplifies the use of event handlers when content is dynamically added to a page. See the discussion of direct versus delegated events in the.on() method for more information.

改進后的使用建議:

1 $(selector).live(events, data, handler); // jQuery 1.3+

2 $(document).delegate(selector, events, data, handler); // jQuery 1.4.3+

3 $(document).on(events, selector, data, handler); // jQuery 1.7+

示例:
1 $("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+

2 $(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+

3 $(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+

 

PS:jQuery也不能隨便更新升級的,要看看每次更新都有些什么變動,不然更新后系統就會有問題啦。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM