2012-02-06 66 views
0

我們的項目在jquery 1.3.2上運行,是一個非常舊的版本,我知道。無論如何,我們現在不會升級它。我們現在只需要使用jquery的chosen plugin(下載鏈接 - https://github.com/harvesthq/chosen),至少需要jQuery 1.4。所以,我也跟着下面的解決方案來加載在同一頁上的jQuery的兩個版本 -無法使用jquery插件使用更高版本的jquery,同時加載jquery的兩個版本

https://stackoverflow.com/a/1566644/351903

但我不能夠調用jQuery的較新版本的選擇。這是我做過什麼 -

1.在jQuery的裝載部分

<script type="text/javascript" src="/js/jquery.js"></script> 

<!-- Added for using jQuery chosen plugin --> 
<script type="text/javascript" src="/js/jquery-1.4.min.js"></script> 
<script type="text/javascript"> 
    var jQuery_1_4 = $.noConflict(true); 
</script> 

注 - 我沒有寫對於舊版本的jQuery以下,因爲我不想取代無論我已經寫了類似的東西$("something").somefunc()這個jQuery_1_3_2("something").somefunc() -

<script type="text/javascript"> 
var jQuery_1_3_2 = $.noConflict(true); 
</script> 

2.然後,在插件調用部分

<link rel="stylesheet" type="text/css" href="/css/chosen.css"/> 
<!-- <script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.min.js"></script> --> 
<script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.js"></script> 
<script type="text/javascript"> 
jQuery_1_4(document).ready(function() 
{ 
    jQuery_1_4("select#user_id").chosen(); //Trying to call chosen on the newer version of jquery 
}); 
</script> 

但我收到此錯誤jQuery_1_4("select#user_id").chosen is not a function

但是,這是正常工作 - alert("see"+jQuery_1_4("select#user_id").attr("id"));

所以,這個問題似乎只是在使用插件,可能我必須做一些調整內插入代碼,可能會取代一些$ s與jQuery_1_4?但這聽起來不太好,我不確定什麼是正確的方法。

回答

0

的第二個版本,如果你要保持你的舊版本,默認情況下,你應該在加載舊版本後立即做var jQuery = $.noConflict(true);。但是,您仍然需要檢查您的$("something").somefunc()來電

+0

謝謝。看來應該首先包含更新的版本,如http://web.enavu.com/daily-tip/using-multiple-versions-of-jquery-on-the-same-page/中給出的那樣。我只需要在插件文件中編輯一行 - 「$ = jQuery;」到'$ = jQuery_1_4;'。我想我所有以前的jquery都能正常工作。我隨機抽查了一些,他們正在工作。 – 2012-02-06 11:28:57

0

調用noConflict()之前包括jQuery的