2012-06-09 50 views
0

我想旋转表中的项目列表(即:)。我想要做的是将第一个项目删除,并将一个项目添加到表的末尾。我能够移除第一个物品,但我被困在如何不断重做这个每10秒。也许,看代码会给出一个更好的主意。JQuery旋转列表

代码:

 $num_ads = 0; 
     if (isset($ads[0])) { 
      foreach($ads as $row) { 
            ... 
            ... 
       echo '<td class="featured_ads_td" id="featured_'.$num_ads.'">'; 
            ... 
            ... 
            $num_ads++ 
          } 
        } 

所以我所做的是,我给每个项目的表中的一个唯一的ID。在这种情况下,第一个项目将是featured_0,其次是featured_1,featured_2..etc

的Javascript

<script src="/jquery-latest.min.js"></script> 
<script type="text/javascript"> 
     var ad_refresh = setInterval(function(){ 
      $('#featured_0').fadeOut('slow'); 
      $('#featured_0').attr('id','removed'); 
     }2000); 
</script> 

使用下面这个脚本会删除我的第一个项目。但是,无论如何,我可以如何制作第一个项目featured_0,所以我可以每2secs递归一次?或者如果有更好的方法做到这一点,请让我知道。我对javascript和jquery的知识仍然非常有限。

感谢您的帮助。

+0

'$('。featured_ads_td).attr('id',''是一个语法错误。该行的末尾丢失,并且在选择器后缺少''' – ThiefMaster

+0

抱歉,错过了。我正在考虑接下来要做什么..但是fadeOut本身工作,我想知道如何改变下一个id(例如:featured_1 to featured_0,以便它可以每2秒移除一次 – Lawrence

回答

1

如果我没有正确理解你的问题,沿着这行的东西可以让你淡出的元素,并将其放置在剩余的后:

看到这个working Fiddle例子!

jQuery的

var ad_refresh = setInterval(function(){ 
    var $target = $('.featured_ads_td:first-child'); 
    $target.fadeOut('slow', function() { 
     $target.appendTo('tr').show(); 
    }); 
},2000); 
+0

Fantastic Works就像一个魅力。将appendTo('tr')更改为我的表格的,否则它会附加到我的页面上的所有表格。 – Lawrence