使用图像滑块时jQuery错误?

时间:2011-06-21 10:22:06

标签: jquery slider

我有一个图像滑块(NivoSlider),它只会淡化我们网站上的一系列图像。它在主页上运行正常,代码如下:

INDEX.PHP的HEAD

<!-- 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>   

在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>

上述代码运行正常,可以查看here

当我尝试在子内容页面上重复使用代码时,我收到以下错误:

[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

我检查了子内容页面上的代码(示例页面here),代码现在与INDEX.PHP的HEAD完全相同,但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 个答案:

答案 0 :(得分:5)

您正在第二页上加载jQuery两次。

你接近页面的末尾

<script type="text/javascript" src="_ui/js/jquery-1.5.min.js"></script>

答案 1 :(得分:1)

嗯,错误是告诉你某个对象上没有“nivoSlider”方法。

查看你的代码,它试图调用该方法的对象是:$('。nivoSlider')

当您加载子页面时,是否有可能存在nivoSlider类的项目不存在 - 或者是您不期望的内容?

或(FTW),它们不止一个......因此它返回一个数组(而不是单个对象),因此需要使用“each”运行

答案 2 :(得分:0)

我有同样的问题。

检查所有包含的脚本是否包含以下行:

jQuery.noConflict();

这会破坏使用$ jQuery别名的脚本。