0

私は自分の画像スライドショーを作成しようとしているので、コードは特定の div を調べ、すべての画像が非表示になっている場合は、div の最初の画像をフェードトグルしてから、関数を再起動する必要があります。私が直面している問題は、img:hidden の数がその div 内の img.length と等しいかどうかを確認することです (これが最初の faze です)。真の場合、コードは最初の画像 img:first を fadeToggle する必要があります。次回この関数が img:hidden != imglength を実行すると、画像の 1 つが表示されるため、二度と実行しないでください。しかし、それは実行され続けます。以下のコードを見てください。

ありがとう

<div class="mainSlide">
<img src="img/1.jpg" style="display:none;" />
<img src="img/2.jpg" style="display:none;" />
<img src="img/3.jpg" style="display:none;" />
</div>

<script type="text/javascript">
$(document).ready(function() {

slideShow();

function slideShow() {
    $allSlides = $('div.mainSlide img').length;
    $hiddenSlides = $('div.mainSlide img:hidden').length;

    if ($hiddenSlides == $allSlides) {
        $('div.mainSlide img:first').fadeToggle('slow').delay(5000);
    }
    slideShow();
}

});
</script>
4

1 に答える 1

0

コールバックを使用しないのはなぜですか?

function slideShow() {
  $allSlides = $('div.mainSlide img').length;
  $hiddenSlides = $('div.mainSlide img:hidden').length;

  if ($hiddenSlides == $allSlides) {
    $('div.mainSlide img:first').fadeToggle('slow', function() {
      slideShow();
    });
  }
}
于 2012-12-02T11:43:11.590 に答える