開始的時候在jQuery.1.7.1中使用了.live()以爲很好用,特別是在綁定事件以後再加入的元素的事件綁定上很方便(第一次live以後之後添加的元素就不須要綁定啦)jquery
後來jQuery更新到1.9.1,頁面中的.live報錯:"has no method live", 後來查了文檔才知道在新版本中作了修改。api
jQuery.1.8.1:ide
$("#liveID").live("click",function(){alert("live click");});網站
jQuery.1.9.1:spa
$(document).on("click","#liveID",function(){alert("live click");});code
jQuery網站上這麼說的:orm
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.element
改進後的使用建議:文檔
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+