2014-04-10 51 views
0
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><!-- jQuery and $ now point to 1.10.2 --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script><!-- jQuery and $ now point to 1.11.0 --> 
<script> 
    $11 = $.noConflict(); 
    // $11 now points to 1.11.0 
    // $ still points to 1.10.2 
</script> 

<!-- SB Admin Scripts --> 
<script src="js/sb-admin.js"></script> 

<!-- carouFredSel --> 
<script src="js/jquery.carouFredSel-6.2.1.js" type="text/javascript"></script> 
<script src="js/carouFredSel-hookup.js" type="text/javascript"></script> 

我有問題得到這個權利。又一個jQuery noConflict()

腳本SB-admin.js不與同一頁上carouFredSel.js一起工作。上面的代碼顯示了我嘗試使用2個不同的jQuery庫和2個不同的變量($和$ 11),每個變量指向一個庫。

在腳本SB-admin.js我只用變量$ 11jquery.carouFredSel.jscarouFredSel-hookup.js只有可變§

目前沒有任何功能似乎工作。我在這裏做錯了什麼?

任何幫助表示讚賞。

+1

你介意我問爲什麼你需要這樣做? – hammus

+0

做一些像'console.assert($ 11.fn.jquery ===「1.11.0」)'indide'sb-admin.js'。當然,在部署到生產之前將其刪除。 – acdcjunior

+0

當你說這些功能似乎不起作用時,具體是什麼意思?當你嘗試代碼時會發生什麼,這與你所期望的有什麼不同?你有任何錯誤信息? – Guffa

回答

1

按照documentation

如果由於某些原因的jQuery的兩個版本,裝載(不推薦),從第二個版本調用$ .noConflict(真)將返回全局範圍jQuery的變量第一版的那些。

您沒有提供true參數。將其更改爲:

<script> 
    $11 = $.noConflict(true); 
    // $11 now points to 1.11.0 
    // $ still points to 1.10.2 
</script> 

我不知道這是否會解決其他兩個庫之間的整體衝突問題。這似乎不太可能,因爲他們需要不同版本的jQuery。

0

我嘗試了你的建議,並將noConflict設置爲(true), ,但它沒有任何幫助。

在此期間,我找到了一種解決方法,但不幸的是,我不能說現在它爲什麼起作用。 我正在使用另一個功能關於相同的菜單,這個顯然不與我的傳送帶衝突。

這是與carouFredSel腳本相沖突的腳本是從這裏菜單: http://startbootstrap.com/templates/sb-admin-v2/

而這是其他菜單腳本正常工作與carouFredSel是這樣的: http://demo.onokumus.com/metisMenu/