运行setInterval函数,将其停止3秒并继续运行

时间:2017-03-31 00:21:13

标签: javascript jquery setinterval

我有一个setInterval函数通过一些div类,如果它找到一个具有特定类的div,它应该停止3秒然后继续运行。请注意我的使用方式:

   clearInterval(myInterval);

但我需要别的东西,再次启动序列或让它继续从那里运行。

e.g:

var myInterval =  setInterval(function() {
                    move.removeClass( "girlFromRight" );

                    runFromRight -= 9;
                    move = $("#grid"+ runFromRight);
                    move.addClass("girlFromRight");


                    if (move.hasClass("man") === true ||
                        move.hasClass("man-right") === true ||
                        move.hasClass("man-left") === true )
                        {


                          clearInterval(myInterval);


                          move.addClass('inLove');
                          move.removeClass('girlFromRight');

                          setTimeout(function() {
                          move.removeClass('inLove');
                          move.addClass('man');

                          }, 3000);


                    }


                    if (c == 9){
                      clearInterval(myInterval);
                    }
                    }, 300);


                   keyPressed = false;

        }, randomTime);
        }   

1 个答案:

答案 0 :(得分:3)

考虑使用 setTimeout 并在每次运行后根据测试设置间隔(300或3000)。这样您就不必启动和停止 setInterval

下面是一个快速示例,它按顺序突出显示每个div,在文本内容可被3整除的任何位置暂停更长时间(作为示例测试)。

.notSelected{}
.selected{
  background-color: blue;
}
<div class="notSelected">0</div>
<div class="notSelected">1</div>
<div class="notSelected">2</div>
<div class="notSelected">3</div>
<div class="notSelected">4</div>
<div class="notSelected">5</div>
{{1}}