开始的时候在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+