如何在Jquery中删除冲突?

时间:2011-11-16 09:11:35

标签: jquery-ui jquery jquery-plugins jquery-selectors

我是JQuery的新手我在页面中使用了2个jQuery。

对于第一个JQuery,我的脚本是这样的:

<script>
    var jq = $.noConflict();
    jq(function() {
         jq( "#my_tabs" ).tabs({
         event: "click" //click
         });            
    });
</script>

现在,当我使用第二个jQuery时,我丢失了第一个jQuery。它无法加载

 <script type="text/javascript">
  $(document).ready(function () {
    $("#waterwheel-carousel-default").waterwheelCarousel();

    $("#waterwheel-carousel-higharch").waterwheelCarousel({
        startingWaveSeparation: -90,
        waveSeparationFactor: .7,
        centerOffset: 10,
        startingItemSeparation: 120,
        itemSeparationFactor: .9,
        itemDecreaseFactor: .75
    });

    $("#waterwheel-carousel-horizon").waterwheelCarousel({
        startingWaveSeparation: 0,
        centerOffset: 30,
        startingItemSeparation: 150,
        itemSeparationFactor: .7,
        itemDecreaseFactor: .75,
        opacityDecreaseFactor: 1,
        autoPlay: 1500
    });

    $("#waterwheel-carousel-flat").waterwheelCarousel({
        itemSeparationFactor: 1,
        itemDecreaseFactor: 1,
        waveSeparationFactor: 1,
        startingWaveSeparation: 0,
        startingItemSeparation: 280,
        centerOffset: 10,
        opacityDecreaseFactor: .3,
        autoPlay: 3000,
        edgeReaction: 'reverse'
    });

    $("#waterwheel-carousel-vertical").waterwheelCarousel({
        orientation: 'vertical',
        startingItemSeparation: 100,
        startingWaveSeparation: 40,
        autoPlay: 2000
    });

  });
</script>

我正在使用两个jQueries进行图像滑动..谁能告诉我这是什么问题?谢谢

1 个答案:

答案 0 :(得分:6)

您应该在$.noConflict()上执行第二次 jQuery脚本。

如果你这样做;

<script src="http://code.jquery.com/jquery-1.7.js"></script>
<script>
    var jq = $.noConflict();
    jq(function() {
         jq( "#my_tabs" ).tabs({
         event: "click" //click
         });            
    });
</script>
<script src="http://code.jquery.com/jquery-1.4.js"></script>

jQuery$都将指向jQuery 1.4,并且没有任何内容会引用jQuery 1.7。顺便说一句,如果您在加载jQuery 1.4后再次运行<{1}} $.noConflict将引用1.4,但jQuery将是未定义的。

但是,如果你这样做:

$

<script src="http://code.jquery.com/jquery-1.7.js"></script> <script src="http://code.jquery.com/jquery-1.4.js"></script> <script> var jq = $.noConflict(); jq(function() { jq( "#my_tabs" ).tabs({ event: "click" //click }); }); </script> 将引用jQuery 1.7,但$将指向jQuery 1.4(与jQuery变量一样)。

您可能需要查看jq;它会释放$.noConflict(true) jQuery变量;所以你可以做这样的事情;

$

然后<script src="http://code.jquery.com/jquery-1.7.js"></script> <script src="http://code.jquery.com/jquery-1.4.js"></script> <script> var jq = $.noConflict(true); jq(function() { jq( "#my_tabs" ).tabs({ event: "click" //click }); }); </script> $都指向jQuery 1.7,只有你的jQuery变量指向jQuery 1.4