2010-08-06 71 views
1

我是Jquery,甚至Javascript的新手。找到并实施此脚本,以及时替换图像。当我将图像包装在标签中时,脚本效果很好。我希望图像是链接。只要我将标签包装在标签中,脚本就会每隔几秒刷新一次,但不会载入下一张图片。img用JQuery替代

我应该在这个脚本改变有下一个图像加载正确

<script type='text/javascript'> 
    function swapImages(){ 
     var $active = $('#rooster .active'); 
     var $next = ($('#rooster .active').next().length > 0) ? $('#rooster .active').next() : $('#rooster img:first'); 
     $active.fadeOut(function(){ 
     $active.removeClass('active'); 
     $next.fadeIn().addClass('active'); 
     }); 
    } 

    $(document).ready(function(){ 
     // Run our swapImages() function every 5secs 
     setInterval('swapImages()', 5000); 
    }); </script> 
+3

我认为你需要发布的HTML源代码,它会让对于那些试图帮助的人来说,事情更容易。 – 2010-08-06 08:49:43

回答

0

的问题是在这里:

$('#rooster img:first') 

它试图找到第一<img>和褪色它,但因为它被包裹在标签中并不会有太大的好处,所以您需要更改标签类型,如下所示:

$('#rooster a:first') 

总有一些更多的变化,虽然,例如,你不应该传递一个字符串setInterval(),如果你能避免它,而不是仅仅通过函数名,就像这样:

setInterval(swapImages, 5000); 

一旦你这样做,你不“T不得不离开功能作为一个全球性,你可以整理一下你的document.ready,整体,你可以做这样的事情:

$(function(){ 
    function swapImages(){ 
    var $active = $('#rooster .active'); 
    var $next = $active.next().length > 0 ? $active.next() : $('#rooster a:first'); 
    $active.fadeOut(function(){ 
     $active.removeClass('active'); 
     $next.fadeIn().addClass('active'); 
    }); 
    } 
    setInterval(swapImages, 5000); 
});