在jQuery中循环的问题

时间:2010-10-30 18:54:20

标签: jquery

嗯,这就是我的意思。

Go to site

在说最新消息的地方,有一些问题。

我要做的是:

加载网站,查看加载栏。(图片位于HTML中)加载栏消失,一段淡入。

这就是它的用途。

// Hides the loading image and fadesin content
  var $latest = $(".latest") 
  $latest
    .hide(); // Hide Content
  setTimeout(function(){
    $('#loading')
      .hide();  
    $latest.fadeIn();
  }
  , 3000);

现在,我还想做的是隐藏段落,淡化另一个,然后是那个之后。然后重新启动它并再次循环allover。

这就是:

$latest
  .hide()
  .first()
  .show(); 

  refreshId = setInterval(function() {
  next = $(".latest:visible").next(); 
  if (next.length) { 
  $latest.hide();
  next.fadeIn(); 
  } else {
  $(".latest")
    .hide()
    .first()
    .fadeIn();
  }
  }, 3000 );

正如你所看到的,这两个脚本相互冲突,整个事情变得疯狂(那个和图像不断出现)。有办法解决吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

setTimeout(function() {
    $('#loading').hide(0,rotator);
}, 3000);

function rotator() {
  var $paragraphs = $('#latest-news').find('p.latest'); // the paragraphs
  $paragraphs.first().show();
  var i = 0;
  var looper = setInterval(function() {
    var showpara = i++ % $paragraphs.length; // choose next one to show
    $paragraphs.not(':eq(' + showpara + ')').hide() // hide others
      .end() // back to first selector
      .eq(showpara).fadeIn(); // show the next
    }, 3000);
}

<小时/> 编辑:更新以处理加载消息,将旋转器封装在函数中,并在加载消息被隐藏时触发该函数。