jQuery 1.9.1中live()变动

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

相关文章
相关标签/搜索