jquery和knockout js的版本兼容性

问题描述:

我试图用Web API构建一个样本MVC应用程序,作为我学习knockout.js的第一步我在我的解决方案中使用了knockout-3.2.0和jquery-2.1.1并在我的系统上安装Internet Explorer 11。jquery和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和knockout版本是不同的。

而且我建立MVC5应用程序与实体框架6.

我使用淘汰赛3.2.0的jQuery 1.9.0 <与此版本淘汰赛的兼容

+1

你为什么要加载完整和缩小的jQuery文件? – PatrickSteele 2014-10-08 16:30:18

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

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

此外,如果你正在使用的WebAPI看看到Budling从Microsoft.Web.Optimization http://www.codeproject.com/Tips/389545/ASP-NET-MVC-Bundling-and-Minification

这将有助于使用jQuery之前意外script标签。

希望这会有所帮助!

+0

我试图删除jquery min.js或.js中的任一个,但仍然是同一个问题。现在我已经把整个淘汰赛代码放在单独的js文件中,并且包含在我的主页中,但不起作用 – 2014-10-09 02:45:51

+0

你最好的工具是你的chrome调试器(F12)相信我......在日志中会有一个错误说明究竟是哪里出了问题,点击文件参考以及试图找到问题的位置...确保您已添加脚本标记为您的新淘汰赛js文件 – 2014-10-09 02:51:58

+0

您最好的选择imo是寻找一个项目(也许这个:https://code.msdn.microsoft.com/Architecture-Web-5dfc3130),并通过它来弄清楚它是如何工作的,看看你是否能看到你的不同之处...我提供的链接是一个不好的例子,因为它相当大,可能很难消化 – 2014-10-09 02:55:37