jQuery ошибка при использовании слайдера изображений? - PullRequest
1 голос
/ 21 июня 2011

У меня есть слайдер изображений ( NivoSlider ), который просто исчезает через ряд изображений на нашем сайте.На главной странице он работает нормально со следующим кодом:

ГОЛОВА INDEX.PHP

<!-- Image Slider -->
    <link rel="stylesheet" href="_ui/css/slider.css" type="text/css" media="screen" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
    <script src="_ui/js/jquery.nivo.slider.pack.js" type="text/javascript"></script>

    <script type="text/javascript">
    $(window).load(function() {
    $('.nivoSlider').nivoSlider({
    effect:'fade', // Specify sets like: 'fold,fade,sliceDown'
    slices:15, // For slice animations
    boxCols: 8, // For box animations
    boxRows: 4, // For box animations
    animSpeed:500, // Slide transition speed
    pauseTime:2000, // How long each slide will show
    startSlide:0, // Set starting Slide (0 index)
    directionNav:false, // Next & Prev navigation
    directionNavHide:false, // Only show on hover
    controlNav:false, // 1,2,3... navigation
    controlNavThumbs:false, // Use thumbnails for Control Nav
    controlNavThumbsFromRel:false, // Use image rel for thumbs
    controlNavThumbsSearch: '.jpg', // Replace this with...
    controlNavThumbsReplace: '_thumb.jpg', // ...this in thumb Image src
    keyboardNav:true, // Use left & right arrows
    pauseOnHover:false, // Stop animation while hovering
    manualAdvance:false, // Force manual transitions
    captionOpacity:0.8, // Universal caption opacity
    prevText: 'Prev', // Prev directionNav text
    nextText: 'Next', // Next directionNav text
    beforeChange: function(){}, // Triggers before a slide transition
    afterChange: function(){}, // Triggers after a slide transition
    slideshowEnd: function(){}, // Triggers after all slides have been shown
    lastSlide: function(){}, // Triggers when last slide is shown
    afterLoad: function(){} // Triggers when slider has loaded
    });
    });
    </script>   

DIV OF SLIDER IN INDEX.PHP

    <div class="nivoSlider">
     <img src="_media/img/home_first_final.jpg" alt="" />
     <img src="_media/img/home_second_final.jpg" alt="" />
     <img src="_media/img/home_third_final.jpg" alt="" />
</div>

Приведенный выше код работает нормально и его можно просмотреть здесь .

Когда я пытаюсь повторно использовать код на странице субконтента, я получаюследующая ошибка:

[cycle] terminating; zero elements found by selector
Uncaught TypeError: Object [object Object] has no method 'nivoSlider'
  (anonymous function)
  c.event.handle
  c.event.add.j.handle.o

Я проверил код на страницах подконтентного контента (пример страницы здесь ), и код теперь является точной копией HEAD of INDEX.PHPно DIV выглядит следующим образом:

<div class="nivoSlider">
 <img src="_media/img/services_first_final.jpg" alt="" />
 <img src="_media/img/services_second_final.jpg" alt="" />
 <img src="_media/img/services_third_final.jpg" alt="" />
</div>

Есть идеи, что не так?

Ответы [ 3 ]

5 голосов
/ 21 июня 2011

Вы загружаете jQuery дважды на второй странице.

У вас есть это в конце страницы

<script type="text/javascript" src="_ui/js/jquery-1.5.min.js"></script>
1 голос
/ 21 июня 2011

Что ж, ошибка говорит о том, что на определенном объекте нет метода "nivoSlider".

В вашем коде объект, к которому он пытается вызвать этот метод: $ ('. NivoSlider')

Возможно ли, что при загрузке вашей подстраницы элемент с классом nivoSlider либо не существует, либо вы чего-то не ожидали?

Или (FTW)что существует более одного из них ... и, следовательно, он возвращает массив (вместо одного объекта) и, следовательно, должен запускаться с использованием "each"

0 голосов
/ 07 июля 2012

У меня была такая же проблема.

Убедитесь, что все включенные сценарии не содержат строку:

jQuery.noConflict();

Это сломает сценарии, которые используют псевдоним $ jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...