2012-01-23 94 views
0

如何處理有兩個單獨的jQuery庫?我需要他們兩個,但包括兩個衝突的結果,只有一個人的功能將起作用。多個jQuery庫之間的衝突

+4

你爲什麼包括** 2 ** jQuery庫?爲什麼不殺死與其他插件兼容性最差的那個,並用需要殺死該插件的插件修復問題?您正在使用的插件的一些片段將有所幫助。 –

回答

7

這取決於。實際上,它們可以同時在頁面中同時激活它們,但其中只有一個可以具有$符號,並且只有其中一個符號可以具有jQuery符號。但在技術上,你可以不止一個頁面上:

<script src="jquery-1.5.2.js"></script> 
<script>var $j15 = jQuery.noConflict(true);</script> 
<script src="jquery-1.7.1.js"></script> 
<script> 
    // Here, $ = jQuery = jQuery 1.7.1 
    // $j15 = jQuery 1.5.2 
</script> 

需要注意的是一個良好的創作jQuery插件會工作,即使在那樣的環境,如:

<script src="jquery-1.5.2.js"></script> 
<script src="plugin-requiring-1.5.2.js"></script> 
<script>var $j15 = jQuery.noConflict(true);</script> 
<script src="jquery-1.7.1.js"></script> 
<script> 
    // Here, $ = jQuery = jQuery 1.7.1 
    // $j15 = jQuery 1.5.2 
    $j15("selector").pluginRequiring152(...); 
</script> 

.. 。因爲一個良好的創作插件看起來是這樣的:

(function($) { 
    $.fn.pluginRequiring152 = ...; 
})(jQuery); 

...等都將使用什麼是jQuery你包括它的點,沒有打破,如果你拉ter關閉noConflict(true)

這是一個好主意嗎?幾乎肯定不是。最好解決所有問題,這使得你需要多個版本的jQuery,並且只包含你測試過的最新版本。