2015-11-30 29 views
0

我有一個Cisco JS庫設計用於使用JQuery 1.4.2,我正在開發的UI頁面上使用最新的2.X版JQuery。如何在JS文件上使用不同版本的JQuery?

Cisco Library

我使用Jabberwerx.js文件從上面的庫鏈接。

如果JQuery加載的是1.4,但無法與更高版本的JQuery一起工作,該庫工作正常。如果我使用舊版本的Jquery,那麼基於bootstrap的我的UI不起作用。我試圖使用noConflict(),但是我無法編輯整個非常龐大的庫。在庫上有很多webservice調用和函數,所以升級它非常麻煩。

是否可以在此JS文件上使用特定版本的JQuery,而其餘應用程序可以使用最新版本的JQuery?

庫上面有這段代碼。我們可以改變這一點,使它使用舊版本的JQ。

(function(window) 
{ var jQuery=function(selector,context) 
    { 
     return new jQuery.fn.init(selector,context); 
    }, 
    _jQuery=window.jQuery, 
    _$=window.$, 
} 

我不看使用在同一頁上不同版本的jQuery,但我試圖jQuery的一個版本的使用限制在JS文件之一。

+1

'$ .noConflict()'是你唯一的希望。或者你可以降級你的代碼來處理JS的'1.4.2'版本(在2.x版本之後它會很痛苦:))。 – Justinas

+1

[我可以在同一頁上使用多個版本的jQuery嗎?](http://stackoverflow.com/questions/1566595/can-i-use-multiple-versions-of-jquery-on-the-same -page) –

回答

2

當您使用不同版本的jquery時,您的代碼會發生衝突。所以可能會出現明顯的錯誤。

要修復它,您需要使用$.noConflict()傳遞布爾參數true

jQuery.noConflict(true); 
//removes jquery itself and allows you to work with different version of jquery 

例子:

<script src="jquery-version-1.0"></script> 
<script>//code for v-1</script> 
<script>jQuery.noConflict(true);//remove jquery</script> 
<script src="jquery-version-2.0"></script><!--use another version--> 
<script>//code for v-2</script> 
+0

這永遠不會解決你的問題。有時你必須根據優先級來添加jquery。我的意思是包括第一版本,然後是第一版本。在瀏覽器工具的幫助下,所有紅色錯誤意味着什麼(右下角)。您還可以爲版本1分配$,爲版本2分配$等等,這也有助於減少依賴關係。默認情況下,$取第一個加載的jQuery版本。 –

1

除了什麼Bhojendra尼泊爾的回答,您也可以通過下面的代碼檢查的jQuery的版本:

var jq_version = $().jquery; 
    console.log(jq_version); 
    /* gives the version number like 1.7.1. So may be you can write an if condition around the version number. For e.g :*/ 
    if(jq_version == '1.7.1'){ 
     //do something for ver 1.7.1 
    } 

甚至有更多的方式來Check the version of jQuery。但我不確定這是否對您使用的CISCO圖書館有很大的幫助。

+0

絕不會發布僅依賴鏈接的答案。如果該頁面脫機,更改等。那麼答案就會失效......總是用一種解決問題的方法回答答案。 – Bonatti

相關問題