Javascript clearInterval不会停止setInterval

时间:2016-11-29 00:54:37

标签: javascript jquery

我有一个javascript代码,使用setInterval函数每隔6秒显示一些消息:

$(function () {
    count = 0;
    wordsArray = ["<h1>Offer received</h1>", "<h1>Offer reviewed</h1>", "<h1>Decision pending</h1>", "Offer accepted.</h1>"];

    setInterval(function () {
        $(".lead").fadeOut(400, function () {
            $(this).html(wordsArray[count % wordsArray.length]).fadeIn(400);
        });
        if(count === 3){
            clearInterval(window.location.href = "www.mydomain.com");
        }
        count++;
    }, 6000);
});

当显示最后一条消息时,我想重定向到一个URL,所以我检查了计数器,并在显示最后一条消息时放置了一个clearInterval但是在显示最后一次按摩后它没有立即转到网址,但是地理位置返回到第一个,然后重定向,听起来像它继续循环。我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:7)

setInterval返回间隔ID,您需要使用它来停止特定间隔。

$(function() {
  count = 0;
  wordsArray = ["<h1>Offer received</h1>", "<h1>Offer reviewed</h1>", "<h1>Decision pending</h1>", "<h1>Offer accepted.</h1>"];

  var intervalTimer = setInterval(function() {
    $(".lead").fadeOut(400, function() {
      $(this).html(wordsArray[count % wordsArray.length]).fadeIn(400);
    });
    if (count === 3) {
      clearInterval(intervalTimer);
    }
    count++;
  }, 6000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="lead"></div>