包括不引人注目的ajax使所有脚本停止工作

Including unobtrusive-ajax making all scripts stop working

本文关键字:脚本 停止工作 引人注目 ajax 包括不      更新时间:2023-09-26

我有一个问题,而通过捆绑JavaScript文件在.NET MVC4

我在我的代码中添加了以下脚本

bundles.Add(new ScriptBundle("~/bundle").Include("~/Scripts/jquery-1.9.1.min.js","~/Scripts/kui/kendo.all.min.js", "~/Scripts/kui/kendo.grid.min.js", "~/Scripts/jquery.validate.min.js"));

一切工作正常,直到这里,但当我添加jquery.unobtrusive-ajax.min.js到列表:

bundles.Add(new ScriptBundle("~/bundle ").Include("~/Scripts/jquery-1.9.1.min.js","~/Scripts/jquery.unobtrusive-ajax.min.js","~/Scripts/kui/kendo.all.min.js", "~/Scripts/kui/kendo.grid.min.js", "~/Scripts/jquery.validate.min.js"));

所有脚本停止工作(验证,剑道UI等),我得到这个异常通过Visual Studio JS调试器:Microsoft JScript runtime error: Object doesn't support this property or method

在生成的bundle脚本文件中突出显示以下代码:

n("a[data-ajax=true]").live("click",function(n){n.preventDefault(),r(this,{url:this.href,type:"GET",data:[]})}),n("form[data-ajax=true] input[type=image]").live( ….

和向前移动没有任何(JavaScript/Jquery相关的)工作了。

可能有冲突在JS文件与var或函数名称?但是在一个冗长的、压缩的、捆绑的脚本文件中很难跟踪。请帮助。

这是因为在jQuery v1.9中已经删除了live函数。

您可以尝试将.live更改为.on

或者,尝试更新jQuery Unobtrusive Ajax NuGet包

试试:

代替

$("a[data-ajax=true]").live("click",function(n){});

$("a[data-ajax=true]").on("click",function(n){});

希望有所帮助