jQuery.noConflict()与其他库

时间:2012-09-13 07:22:58

标签: javascript jquery

我正在使用我的Jquery应用程序以及其他JavaScript库。当用Google搜索时,我发现Jquery.noConflict()是避免与其他库冲突的解决方案。出于测试目的,我在html的head部分添加了下面给出的脚本,这些脚本工作正常。

<script type="text/javascript" src="includes/myJqueryScript.js"></script>
<script type="text/javascript">
    jQuery.noConflict();
</script>

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-compat.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-nocompat.js"></script>
<script type="text/javascript" src="js/prototype-1.5.js"></script>
<script type="text/javascript" src="js/prototype-1.7.1.0.js"></script>

但在某些情况下,它可能会出现在下面给出的其他库的底部,这是相互矛盾的。

<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-compat.js"></script>
<script type="text/javascript" src="js/mootools-core-1.4.5-full-nocompat.js"></script>
<script type="text/javascript" src="js/prototype-1.5.js"></script>
<script type="text/javascript" src="js/prototype-1.7.1.0.js"></script>

<script type="text/javascript" src="includes/myJqueryScript.js"></script>
<script type="text/javascript">
    jQuery.noConflict();
</script>

这意味着我的脚本将在调用其他库之前或之后出现。这个问题有什么好的解决方案吗?如果这不是Jquery.noConflict()的语法,请更正我。

提前致谢

3 个答案:

答案 0 :(得分:4)

我通常只将我的所有jquery代码包装在其中:

(function($){
  //use jquery $() here
})(jQuery);

答案 1 :(得分:0)

如果myJqueryScript.js由您自己的jQuery代码组成,那么您必须先调用noConflict var jQuery = $.noConflict();现在必须使用您创建的jQuery变量。但是它应该在jquery被包含在jquery-1.2.6.js之后调用。但是你也有prototype and mootools也使用$所以你必须得到一个Dollar safe mode mootools {{3} }}

答案 2 :(得分:0)

经过一些谷歌搜索后,我找到了一个方便的解决方案

Using multiple versions of jQuery