我最近升级了一个网站以使用 ASP.NET MVC 4,并使用以下代码来呈现我的 jQuery 验证包。
但我收到以下错误:
Microsoft JScript runtime error: Object doesn't support property or method 'live'
单击文本框时出现此错误:
Unhandled exception at line 1234, column 5 in http://localhost:13112/Scripts/jquery.validate.js
0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'call': object is null or undefined
我的捆绑代码:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
我的_Layout.cshtml代码:
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/modernizr")
这是我渲染的 HTML:
<link href="/Content/site.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.core.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.resizable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.selectable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.accordion.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.autocomplete.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.button.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.dialog.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.slider.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.tabs.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.datepicker.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.progressbar.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.theme.css" rel="stylesheet"/>
<script src="/Scripts/jquery-1.9.0.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/jquery-ui-1.9.2.js"></script>
<script src="/Scripts/modernizr-2.6.2.js"></script>
有人可以指出为什么会发生这个错误吗?
谢谢,
亚历克斯.
.live 方法已在 jQuery v1.7+ 中弃用,并在 jQuery v1.9+ 中删除。
错误报告:http://bugs.jquery.com/ticket/13213 http://bugs.jquery.com/ticket/13213
解释:http://jquery.com/upgrade-guide/1.9/#live-removed http://jquery.com/upgrade-guide/1.9/#live-removed
.live() 已删除
.live() 方法自 jQuery 1.7 起已被弃用,并且已被
1.9 中删除。我们建议升级代码以使用 .on() 方法
反而。要完全匹配 $("a.foo").live("click", fn),例如,
你可以写$(document).on("click", "a.foo", fn)。了解更多
信息,请参阅 .on() 文档。与此同时,jQuery
Migrate 插件可用于恢复 .live() 功能。
怎么修:
下载jquery 迁移插件 https://github.com/jquery/jquery-migrate/并将其添加到您的捆绑包中:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-migrate-{version}.js"));
更新:迁移插件现在也可以从 Nuget 获得:
PM> 安装包 jQuery.Migrate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)