13

jquery 1.9.0中没有这个live()功能,但是jquery.unobtrusive.ajax.js已经在使用这个功能了。

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

4

4 回答 4

12

自 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 之前包含一个live()仍然存在的 jQuery 版本。

如果您引用的是 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 版本。

于 2013-01-29T23:06:39.673 回答
8

.live()已替换为以下事件委托语法.on()

$('#parent').on('click', '.child', function() {
  ...
});

#parent调用选择器时应该存在,因此如果您的元素是顶级元素,请document用作父元素。

于 2013-01-29T23:09:11.997 回答
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.andSelf() 替换为 jQuery.fn.addBack() JQMIGRATE:不推荐使用 jQuery.clean()

于 2013-02-03T22:43:32.240 回答
1

live()在最新的 jQuery 版本中已被弃用,但 Microsoft 将更新的不显眼的脚本保留为覆盖默认脚本的 NuGet 包:

于 2013-05-23T15:20:26.203 回答