Jquery停止功能不能正常工作

时间:2013-03-22 13:53:43

标签: javascript jquery

我使用函数调用为show div创建了这个函数,但我执行了这个函数并在show之后停止了一秒钟:

<script>

function repit_clouds(request)
{
  if (request=='no')
  {
    stop();
  }
  else
  {
    if (request=='ok')
    {
      var interval = setInterval(function() {
        $("#header_sun").fadeIn(4000);
        $("#header_sun").fadeOut(4000);
      },10000);
    }
  }
}

$(document).ready(function() 
{

  $("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000);
  repit_clouds('ok');
  $("#header_background_clouds").fadeOut(2000).css("display","#none");
  $("#header_background_night").fadeIn(2000).css("background","#000").show(4000).fadeIn(2500);
  repit_clouds('no');
});
</script>

问题在于repit_clouds函数,当我发送值时,函数必须停止,但不能正常工作并继续,就好像request==ok,我不知道为什么不停止

1 个答案:

答案 0 :(得分:2)

嗯,您认为stop()的确切是什么?你的意思是:

$('#header_sun').stop()

会暂停该元素上的所有现有动画吗?

或者您是否也想停止间隔计时器:

clearInterval(interval);

当然还要求interval在函数外部声明,以便每次调用函数时其值都不会丢失。

我还注意到,.css().fadeOut()调用不会将.show()函数排队 - .css()不是动画函数,因此这些更改将始终马上发生。

同样,对repit_clouds()的两次调用也不会排队 - 如果您希望在之前的动画之后完成,那么您需要调查jQuery .queue()函数,或在“动画完成回调”期间触发它们。