2014-10-08 241 views
-1

我試圖用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

回答

0

很好的改變,這個問題正在發生因爲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