多个jQuery库之间的冲突

Adh*_*ham 0 jquery

如何处理两个独立的jQuery库?我需要它们,但包括两个结果都会发生冲突,只有一个功能可以使用.

T.J*_*der 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>
Run Code Online (Sandbox Code Playgroud)

请注意,经过良好创作的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>
Run Code Online (Sandbox Code Playgroud)

...因为一个写得很好的插件看起来像这样:

(function($) {
    $.fn.pluginRequiring152 = ...;
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

...所以将使用jQuery你包含它的任何东西,如果你以后开火,不会破坏noConflict(true).

这是个好主意吗?几乎肯定不是.最好解决任何问题,使您需要多个版本的jQuery,并且只包括您测试过的最新版本.