我该如何清除setInterval函数?

时间:2015-06-03 13:01:55

标签: javascript jquery html css

我为设置Interval做了一个演示但是对于明确的Interval感到困惑。在这里,我写完整的演示代码。 请改进它。

$(document).ready(function() {
  $('.done').click(function() {
    $('.def').show(400).hide(5800);
    if ($('.def').css('display') == 'block') {
      $('.def').addClass('aa');
    }
  });
  setInterval(
    function abc() {
      if ($('.def.aa').css('display') == 'none' && $(window).scrollTop() >= 0) {
        console.log(8);
        $('.def.aa').removeClass('aa');
        $('html,body').animate({
          scrollTop: $('.done').offset().top - 5
        }, 400);
        return false;
      }
    }, 400);

});
.abc {
  color: red;
  font-size: 18px;
  font-family: cursive;
}
.def {
  color: black;
  font-size: 29px;
}
.done {
  font-size: 13px;
  font-family: fantasy;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="content">
  <p class="abc">Demo Text Demo Text Demo Text</p>
  <p class="def" style="display: none">show this</p>
  <a href="/" class="done">Click Me</a>
</div>

在此Set Interval工作正常,但可能是因为Interval浏览器有明显悬挂问题。

3 个答案:

答案 0 :(得分:1)

将您的间隔设置为变量并清除此变量

var inter = setInterval(function(){}, 1000);
clearInterval(inter);

参考

答案 1 :(得分:0)

您需要将setInterval的返回值指定给变量。

将该变量添加到您的函数中,如

var myInterval = 0;

然后在你的函数中添加myInterval = setInterval ... 当你想要清除它时,只需致电clearInterval(myInterval);

答案 2 :(得分:0)

setInterval()

中设置间隔
var myVar = setInterval(function(){}, 1000);

清除间隔

clearInterval(myVar);