包括unobtrusive-ajax使所有脚本停止工作

时间:2013-04-02 12:54:19

标签: javascript jquery asp.net-mvc bundling-and-minification

我在通过.NET MVC4

中的捆绑捆绑JavaScript文件时出现问题

我正在添加以下脚本以在我的代码中捆绑

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"));

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

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

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或函数名称冲突?但是在很长的缩小和捆绑的脚本文件中很难找到它。 请帮助。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

试试这样:

替换

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

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

希望有所帮助