1

我正在使用我的 Jquery 应用程序和其他 javascript 库。当我用谷歌搜索时,我知道 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() 的语法,请纠正我。

提前致谢

4

3 回答 3

4

我通常只是将我所有的 jquery 代码包装在这个:

(function($){
  //use jquery $() here
})(jQuery);
于 2012-09-13T07:27:29.807 回答
0

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

使用多个版本的 jQuery

于 2012-09-13T09:29:04.403 回答
0

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

于 2012-09-13T08:37:46.300 回答