jQuery - 以固定的时间间隔添加自动div

时间:2013-11-19 14:46:36

标签: jquery

我有一个简单的问题:我想在固定的时间间隔(例如5秒)内为页面添加一个新的div。

图片显示我的意思:

enter image description here

我用的是内容:http://feed2js.org/但它不起作用,我的代码:

$(document).ready(function(){
   news = $('.rss-item')
   current = 0;
   news.hide();
   Rotator();
});  

function Rotator() {
    $(news[current]).show('slow').delay(300).fadeOut('slow');
    $(news[current]).queue(function() {
        current = current < news.length - 1 ? current + 1 : 1;
        Rotator();
        $(this).dequeue();
    });
}

谢谢你/

3 个答案:

答案 0 :(得分:0)

我很确定您需要对setInterval();

执行某些操作

<强> JS

$(document).ready(function(){
    news = $('.rss-item')
    current = 0;
    news.hide();

    setInterval(showNewFeed,5000);

    function showNewFeed(){
        if(news.length > 0){
            if(news.filter(':visible').length == 0){
                news.eq(current).fadeIn('slow');
            }
            else{
                news.eq((current - 1)).fadeOut('slow', function(){
                    if(current > news.length){
                        current = 0;
                    }
                    news.eq(current).fadeIn('slow');
                });
            }
        }

        current++;
    }

});

答案 1 :(得分:0)

您可以使用setInterval在每5秒后添加新div

   setInterval(add,5000);

   function add(){
        $("#divMain").append("<br/><div id='New'>New</div>");
   }

答案 2 :(得分:0)

好的,如果我理解得很清楚你在var新闻中得到了所有的RSS,你想要隐藏每条新闻并在5秒之间延迟显示它们。

其他人给出了很好的答案,因为你的问题是关于时间的,但是有你想要的代码(没有经过测试)(我只是改变代码逻辑中的错误)

var $news = null, current = 0, timeInterval = 5000;
$(document).ready( function()
{
  $news = $( '.rss-item' );
  $news.each( function( index, $el )
  {
    $el.hide();
  } );
  Rotator();
} );  

function Rotator() {
  //$( $news[ current ] ).show( 'slow' ).delay( 300 ).fadeOut('slow'); // what ?
  $( $news[ current ] ).fadeIn( 500 );

  if ( ++current < $news.length ) // if end of rss stop loop
  {
    setTimeout( function()
    {
      Rotator();
    }, timeInterval );
  }
}

请大家不要使用setInterval