【问题标题】:Version compatibility of jquery and knockout jsjquery和knockout js的版本兼容性
【发布时间】:2014-12-03 00:03:50
【问题描述】:

我正在尝试使用 Web API 构建示例 MVC 应用程序,作为学习 knockout.js 的第一步系统。

我在我的代码中包含了 jQuery 和 knockout.js 文件,如下所示:

<script src="~/Scripts/jquery-2.1.1.js"></script>
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script src="~/Scripts/knockout.mapping-latest.js" ></script>

但是,当我运行应用程序时,会收到一条错误消息:

'$未定义"。

我预计这个问题的出现是因为 jQuery 和淘汰赛的不兼容版本。

谁能帮我解决这个问题?

有关我所做的详细步骤,请访问this dotnetcurry page。我唯一的区别是我的示例应用程序中使用的 jquery 和敲除版本是不同的。

我也在使用实体框架 6 构建 MVC5 应用程序。

我用的是knockout 3.2.0 jquery

【问题讨论】:

  • 为什么要同时加载完整和缩小的 jQuery 文件?

标签: jquery knockout.js


【解决方案1】:

问题正在发生的很好的变化,因为 Jquery 由于它的双重定义而正在加载。删除 .min.js 或 .js 看看是否有帮助。

此外,如果您有自定义代码,请确保它是在您的 Jquery 脚本标记下定义的,否则您将遇到同样的问题。

另外,如果您使用 webapi,请查看 Microsoft.Web.Optimization 的 Budling http://www.codeproject.com/Tips/389545/ASP-NET-MVC-Bundling-and-Minification

这将有助于处理 jquery 之前的意外脚本标签。

希望这会有所帮助!

【讨论】:

  • 我尝试删除 jquery min.js 或 .js 中的任何一个,但仍然是同样的问题。现在我也将整个淘汰代码放在单独的 js 文件中并包含在我的主页中,但不起作用
  • 您最好的工具将是您的 chrome 调试器 (F12) 相信我...在日志中会有一个错误说明究竟出了什么问题,请单击文件参考并尝试查找问题的位置...确保您已为您制作的新淘汰赛 js 文件添加了脚本标签
  • 目前 imo 最好的选择是寻找一个项目(也许是:code.msdn.microsoft.com/Architecting-Web-5dfc3130)并仔细研究它以了解它是如何工作的,看看你是否能看到你的项目与他们的项目有何不同...我提供的链接是一个不好的例子,因为它相当大并且可能难以消化
  • 我用的是knockout 3.2.0 jquery
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2023-03-03
  • 2015-04-18
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多