jquery 1.9.0中没有这个live()
功能,但是jquery.unobtrusive.ajax.js已经在使用这个功能了。
我应该使用旧版本的 jquery 还是其他方式?
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 之前包含一个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 版本。
.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 版本中已被弃用,但 Microsoft 将更新的不显眼的脚本保留为覆盖默认脚本的 NuGet 包: