jquery 1.9.0 中没有live()
功能,但 jquery.unobtrusive.ajax.js 已使用此功能。
我应该使用旧版本的jquery还是其他方式?
答案 0 :(得分:12)
从1.7开始贬值并从1.9开始删除。请改用on()
。
$("#myButton").on("click", function(){
alert("Clicked");
});
这里有很多好消息:
http://www.elijahmanor.com/2012/02/differences-between-jquery-bind-vs-live.html
对于Unobtrusive Ajax,您需要在v1.9之前包含一个jQuery版本,其中live()
仍然存在。
如果您正在引用MS CDN,
http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.js http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js
然后它们似乎没有直接引用jQuery。只需在代码中包含1.8版本而不是1.9版本。
答案 1 :(得分:7)
.live()
已替换为.on()
的事件委派语法:
$('#parent').on('click', '.child', function() {
...
});
当你调用选择器时, #parent
应该存在,所以如果你的元素是顶级的,那么使用document
作为父级。
答案 2 :(得分:2)
jquery.migate在遗留函数中添加回来。这意味着jquery.unobtrusive.ajax.js按预期运行。
根据官方博客引用jquery.migrate库,并且还有一个nuget pacakge,但显然你需要更新你的模板/布局视图。
http://blog.jquery.com/2013/01/31/jquery-migrate-1-1-0-released/
http://nuget.org/packages/jQuery.Migrate/
Javascript控制台确实突出了问题......
JQMIGRATE:记录处于活动状态 JQMIGRATE:不推荐使用jQuery.fn.live() JQMIGRATE:jQuery.fn.addBack()取代jQuery.fn.andSelf() JQMIGRATE:不推荐使用jQuery.clean()
答案 3 :(得分:1)
live()
在最新的jQuery版本中已被弃用,但微软将更新的不显眼的脚本作为覆盖默认版本的NuGet包进行了更新: