1

私はjQueryを使用して、ulの下の各li要素を1つずつ表示しています。コードは次のとおりです。

  $('.article_ticker li:first').siblings().hide();
  var list=$('.article_ticker li:first').siblings();

  list.each(function(index)
  {
      $(this).siblings().hide().delay(2000).fadeOut();
      $(this).fadeIn('fast');
  });

このコードは問題なく動作しますが、「each」ループが終了すると、シーケンスは繰り返されません。循環を無限に繰り返したい。最後の要素がフェードアウトした後と同様に、最初の要素がフェードインする必要があります。

4

1 に答える 1

1

次のことができます...

$('.article_ticker li:first').siblings().hide();
var list=$('.article_ticker li:first').siblings();

(function repeatTicker() {
  list.each(function(index) {
    $(this).siblings().hide().delay(2000).fadeOut();
    $(this).fadeIn('fast');
  });
  setTimeout(repeatTicker, 10);
} ());

ここで setTimeout を使用しています。そうしないと、ブラウザーはページが応答していないと文句を言います。今は 10 ミリ秒を使用していますが、可能な限り長くします。

于 2012-07-09T10:17:21.397 に答える