与其他库的jQuery.noConflict()

jQuery.noConflict() with other libraries

本文关键字:noConflict jQuery 其他      更新时间:2023-09-26

我正在使用Jquery应用程序和其他javascript库。当我在谷歌上搜索时,我知道Jquery.noConflict()是避免与其他库冲突的解决方案。出于测试目的,我在html的头部添加了如下所示的脚本,该脚本运行良好。

<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().的语法,请纠正我

提前感谢

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

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

如果myJqueryScript.js由您自己的jQuery代码组成,那么您必须像var jQuery = $.noConflict();一样在此之前调用noConflict,现在您必须使用您创建的这个jQuery变量。但是它应该在jquery包含在您的案例中的jquery-1.2.6.js之后调用。但你也有prototype and mootools,它也使用$,所以你必须得到一个Dollar safe mode的mootoolshttp://mootools.net/blog/2009/06/22/the-dollar-safe-mode/

经过一些谷歌搜索,我发现了一个方便的解决方案

使用jQuery 的多个版本