gpt4 book ai didi

jquery - kendo.syncReady 不是函数

转载 作者:行者123 更新时间:2023-12-03 22:16:49 25 4
gpt4 key购买 nike

我对 Kendo UI 很陌生,一路上遇到了一些问题。我使用BundleConfiguration解决了引用问题后,显示错误:

kendo.syncReady is not a function

这是我的观点:

<head>
@Styles.Render("~/Content/kendo.common.min.css")
@Styles.Render("~/Content/kendo.default.min.css")
@Scripts.Render("~/Scripts/jquery.min.js")
@Scripts.Render("~/Scripts/kendo.web.min.js")
@Scripts.Render("~/Scripts/kendo.aspnetmvc.min.js")
@Scripts.Render("~/Scripts/kendo.all.min.js")
@Scripts.Render("~/Scripts/modernizr-2.6.2.js")
</head>
<body>
@(Html.Kendo().DatePicker().Name("datepicker"))
</body>

这发生在 Chrome 上。在 IE 上,它告诉我 datepicker 未定义。也许我缺少引用资料或其他什么?或者有人可以告诉我如何检查 jQuery 脚本的版本吗?我从 Telerik 免费试用中获得了所有这些。

最佳答案

kendo.syncReady最新版本的 KendoUI(v2017.1 223 左右)添加了该功能。 Telerik 开发人员在 forum post 中写了这个:

The syncReady method is added in the kendo.aspnetmvc.js file, because the reason for including it was a major problem with jQuery 3.1 and how the templates are generated in MVC. With that in mind, ensuring that the kendo.aspnetmvc.js file is updated with the latest version should resolve the error with the missing function.

导致此错误的主要条件有两个:

  1. 您使用 ASP.NET MVC 包装器来生成 Kendo 小部件。
  2. 您可以在 MVC 包装器输出 Kendo JS 代码的位置之后添加 Kendo 脚本标记(如 <body> 关闭之前)。

ASP.NET MVC 包装器为您生成 Kendo JS 代码,现在它们将该代码包装在 kendo.syncReady 中。函数,但如果在 MVC 包装器将 Kendo JS 插入页面后包含 Kendo 的脚本标记,则 kendo.syncReady函数尚不存在,您将看到错误。

修复#1

解决这个问题的第一个方法是移动你的剑道 <script>上面的标签是 MVC 包装器输出 Kendo JS 代码的地方。

<head>
<script src="https://kendo.cdn.telerik.com/2017.1.223/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.1.223/js/kendo.all.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.1.223/js/kendo.aspnetmvc.min.js"></script>
</head>
<body>
@(Html.Kendo().DatePicker().Name("datepicker"))
</body>

这并不理想,主要有两个原因:这些脚本将被渲染阻塞,以及 kendo.all.min.js文件超过 1MB!

修复#2

您还可以延迟 MVC 包装器的脚本输出,如下所示:

@(Html.Kendo().DatePicker().Name("datepicker").Deferred(true))

这可以防止使用 MVC 包装器时输出 JS 代码,并且基本上存储渲染的 JS,因此您可以将其放置在页面上的任何位置:

<body>
@(Html.Kendo().DatePicker().Name("datepicker").Deferred(true))

<script src="https://kendo.cdn.telerik.com/2017.1.223/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.1.223/js/kendo.all.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2017.1.223/js/kendo.aspnetmvc.min.js"></script>

@Html.Kendo().DeferredScripts(true)
</body>

进一步讨论

如果您继续看到kendo.syncReady is not a function错误,请查看生成的 HTML 的源代码并确保 Kendo 脚本标记确实在 MVC 包装器生成的代码之前输出。还要确保您使用的是正确版本的 Kendo,并且 JS 文件和 DLL 文件之间的 Kendo 版本相同。

关于jquery - kendo.syncReady 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com