使用kendoUI找不到Jquery

时间:2014-01-24 20:40:05

标签: jquery kendo-ui

我一直收到一条说明jQuery not found的错误。通常这是由于jquery在需要之前没有加载。但是,当我查看调试器时,首先会加载jquery。为了不首先加载jquery,我可能会缺少什么?

相关捆绑

bundles.Add(new ScriptBundle("~/bundles/jquery")
       .Include("~/Scripts/jquery-{version}.js")
       .Include("~/Scripts/knockout-{version}.js")
       .Include("~/Scripts/moment.js")               
);

bundles.Add(new ScriptBundle("~/bundles/kendo")
       .Include("~/Scripts/kendo/2013.3.1316/kendo.all.min.js")
       .Include("~/Scripts/kendo/2013.3.1316/kendo.aspnetmvc.min.js")
);

关闭</body>之前_Layout.cshtml页面

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/kendo")

页面来源信息

<script src="/Scripts/jquery-1.9.1.js"></script>
<script src="/Scripts/knockout-3.0.0.debug.js"></script>
<script src="/Scripts/moment.js"></script>
<script src="/Scripts/kendo/2013.3.1316/kendo.all.min.js"></script>
<script src="/Scripts/kendo/2013.3.1316/kendo.aspnetmvc.min.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>

如果我将@Scripts.Render("~/bundles/jquery")移动到它工作的标题,我找到了一个解决方案。

1 个答案:

答案 0 :(得分:0)

为了将来参考,jQuery需要在头文件中的原因是MVC帮助程序直接在widget元素下面注入<script>标记。

之类的东西
<script>jQuery(function(){ //widget init code here })</script>

因为jQuery被加载到body标记之下,所以在加载jQuery之前,小部件代码(如上所述)正在执行,因此出现错误。您还可以使用Widget.Defer()旁边的Kendo.WriteScripts()功能来解决此问题,该功能允许您将脚本标记推迟到jQuery脚本标记之后

http://www.kendoui.com/forums/kendo-ui-complete-for-asp-net-mvc/general-discussions/kendo-initialization-scripts-in-body-interfere-with-other-libraries.aspx