if next条件在下一次使用setInterval后发生

时间:2014-12-31 14:45:22

标签: javascript jquery

我正在尝试创建一个简单的幻灯片。问题在于我的if / else语句。我希望它在我的$ base === 0时添加一个类,但它只在确定值为0后才适用。

我在console.log中的示例$ base.length,将如下所示:1,1,1,1,0,1。

我不希望它在声明0之后应用类,但同时也是如此。不知道是什么引起了这个。它是否与setInterval vs if / else?

发生冲突
          <ul class="slideshow">
                <li class="slideshow1  e-slide-on"></li>
                <li class="slideshow2"></li>
                <li class="slideshow3"></li>
                <li class="slideshow4"></li>
          </ul>


        function slideSwitch() {
            var $base = $('.slideshow li.e-slide-on');

            $base.next().addClass('e-slide-on');
            $base.removeClass('e-slide-on');

            if ($base.length === 0 ){
                $('.slideshow li:first').addClass('e-slide-on');
            } else{
                return;
            }
        }
       $(function() {
           setInterval( function(){slideSwitch()}, 1000 );
       });

1 个答案:

答案 0 :(得分:1)

我认为您应该检查是否有下一个元素,而不是当前有一个元素。

尝试if($base.next().length === 0)