jquery 1.9.0直播function?
jquery 1.9.0中没有live()
函数,但jquery.unobtrusive.ajax.js已经使用了这个函数。
我应该使用旧版本的jquery还是其他方式?
自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版本。
.live()
已替换为.on()
的事件委托语法:
$('#parent').on('click', '.child', function() { ... });
调用选择器时应存在#parent
,因此如果您的元素是顶级元素,请使用document
作为父级。
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.andSelf()替换为jQuery.fn.addBack()JQMIGRATE:不推荐使用jQuery.clean()
live()
在最新的jQuery版本中已经被弃用,但是微软将更新的不显眼的脚本作为覆盖默认版本的NuGet包来保存:
- Microsoft.JQuery.Unobtrusive.Ajax
- Microsoft.JQuery.Unobtrusive.Validation