javascript clearInterval不能立即工作

时间:2015-05-16 18:18:17

标签: javascript jquery

我使用jquery animate加上使用setInterval来设置div的动画。

然而,当我在clearInterval时,动画应该停止。但它在一段时间后停止了。效果不是立竿见影的。

$(document).ready(function(){

  var blinkTime;

  $('#one').click(function(){
   blinkTime = setInterval(function(){
      $('#a').animate({opacity: 0}, 1000);
      $('#a').animate({opacity: 1}, 1000); 
   }, 1000);

  });



  $('#two').click(function(){
    alert('clicked');
   window.clearInterval(blinkTime);

  });
});

请查看此DEMO

3 个答案:

答案 0 :(得分:3)

您的演示与问题中的代码不同。

在问题中,您的间隔为1000,但动画总计2000。因此,您可能会建立一个动画调用队列。

我建议不要尝试与自己的计时器协调jQuery动画。而是使用回调来重新启动动画。

答案 1 :(得分:3)

间隔刚开始一秒动画,因此清除间隔将阻止它开始下一个动画。但它不会停止动画。您可以使用$("#a").stop();执行此操作。查看the documentation for jQuery's .stop()

答案 2 :(得分:2)

尝试使用$('#a')。stop(true,true).animate ...

检查jquery停止功能。