jquery 1.9.0直播function?

jquery 1.9.0中没有live()函数,但jquery.unobtrusive.ajax.js已经使用了这个函数。

我应该使用旧版本的jquery还是其他方式?

自1.7起贬值,截至1.9。 使用on()代替。

http://api.jquery.com/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