0

我在通过 Bundling in 捆绑 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"));

所有脚本都停止工作(验证、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或函数名冲突?但是很难在一个长的缩小和捆绑的脚本文件中追踪。请帮忙。

4

2 回答 2

1

这是因为该live功能已在 jQuery v1.9 中删除。

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

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

于 2013-04-02T12:56:56.930 回答
1

试试这样:

代替

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

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

希望能帮助到你

于 2013-04-02T13:26:42.543 回答