又一个jQuery noConflict()

时间:2014-04-10 00:38:16

标签: javascript jquery conflict

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><!-- jQuery and $ now point to 1.10.2 -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script><!-- jQuery and $ now point to 1.11.0 -->
<script>
    $11 = $.noConflict();
    // $11 now points to 1.11.0
    // $ still points to 1.10.2
</script>

<!-- SB Admin Scripts -->
<script src="js/sb-admin.js"></script>

<!-- carouFredSel -->
<script src="js/jquery.carouFredSel-6.2.1.js" type="text/javascript"></script>
<script src="js/carouFredSel-hookup.js" type="text/javascript"></script>

我遇到了这个问题。

脚本 sb-admin.js 不能与同一页面上的 carouFredSel.js 一起使用。上面的代码显示了我尝试使用2个不同的jQuery库和2个不同的变量($和$ 11),每个变量都指向其中一个库。

在脚本 sb-admin.js 中,我只使用变量 $ 11 jquery.carouFredSel.js carouFredSel -hookup.js 仅变量§

目前,这些功能似乎都不起作用。我在这做错了什么?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

根据documentation

  

如果出于某种原因加载了两个版本的jQuery(不建议这样做),从第二个版本调用$ .noConflict(true)将返回全局范围的jQuery变量到第一个版本的变量。

您没有提供true参数。将其更改为:

<script>
    $11 = $.noConflict(true);
    // $11 now points to 1.11.0
    // $ still points to 1.10.2
</script>

我不知道这是否能解决其他两个库之间冲突的整体问题。这似乎不太可能,因为它们需要不同版本的jQuery。

答案 1 :(得分:0)

我确实尝试过你推荐并将noConflict设置为(true), 但它没有任何帮助。

与此同时,我找到了一个解决方法,但不幸的是我无法分辨为什么它现在有效。 我正在使用另一个功能来获得相同的菜单,这个显然与我的旋转木马没有冲突。

这是与carouFredSel脚本冲突的脚本是这里的菜单: http://startbootstrap.com/templates/sb-admin-v2/

这是另一个与carouFredSel一起使用的菜单脚本是这样的: http://demo.onokumus.com/metisMenu/