Как я могу удалить конфликт в моем Jquery? - PullRequest
1 голос
/ 16 ноября 2011

Я новичок в JQuery, и я использовал 2 jQueries на своей странице.

Для первого 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 Ответ

6 голосов
/ 16 ноября 2011

Это ваш 2-й jQuery-скрипт, который вы должны выполнить $.noConflict() on.

Если вы делаете;

<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. Кстати, если бы вы снова запустили $.noConflict после загрузки jQuery 1.4, jQuery будет ссылаться на 1.4, но $ будет неопределенным.

Однако, если вы сделаете:

<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 будет указывать на jQuery 1.4 (как и ваша переменная 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 будут указывать на jQuery 1.7, и только ваша переменная jq будет указывать на jQuery 1.4

...