2014-01-24 26 views
0

我不断收到一个错误,指出jQuery not found。通常这是由于jquery在需要它之前没有加载。但是,当我看着调试器时,jquery首先被加载。我可能会错过什么不让jquery先加载?未找到与kendoUI的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")到头部有用。

回答

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