jQuery-终止动画

jQuery-终止动画,jquery,animation,terminate,Jquery,Animation,Terminate,当我遇到如下代码时,我遇到了一个问题: $("#clickme").click(function () { $("#status").fadeIn(250).delay(2500).fadeOut(250); }); 这表明用户成功保存某些信息后,问题在于,当你多次(快速)单击#clickme按钮时,动画进入某种队列,它们一个接一个地执行。这很糟糕。我想当用户多次点击按钮时,上一个动画将停止,而新的动画将从头开始 此外,当#状态当前可见且用户再次单击时,状态将消失,新动画将重新开

当我遇到如下代码时,我遇到了一个问题:

  $("#clickme").click(function () {
  $("#status").fadeIn(250).delay(2500).fadeOut(250);
   });
这表明用户成功保存某些信息后,问题在于,当你多次(快速)单击#clickme按钮时,动画进入某种队列,它们一个接一个地执行。这很糟糕。我想当用户多次点击按钮时,上一个动画将停止,而新的动画将从头开始

此外,当#状态当前可见且用户再次单击时,状态将消失,新动画将重新开始

谁能告诉我一些方向吗?我已经努力解决这件事好几天了

尝试使用.clreaQueue();这对你有用

$("#clickme").click(function () {
     $("#status").clearQueue();
     $("#status").fadeIn(250).delay(2500).fadeOut(250);
   });

您必须确保您的状态尚未设置动画:

$("#clickme").click(function () {
  var $status = $("#status");
  $status.stop(true).hide();
  $status.fadeIn(250).delay(2500).fadeOut(250);
});
您可以使用如下方法:

$("#status").stop(true).fadeIn(250).delay(2500).fadeOut(250);
在未来,它会起作用。(使用
true
param。)

[编辑](添加多个状态)

这和你想做的一样吗?

+1这似乎是正确的,你介意从上面扩展到OP的代码中吗?@Benjamin Grunbaum实际上我的目的是快速回复,然后我会扩展它。@RichardŠstek你检查过我的answer@Baadshah你现在可以检查一下嘿,谢谢你的回答。使用clreaQueue很好。我不知道它的存在。除了stop()非常好而且简单的解决方案:)stop方法也不会导致成功的场景。感谢您的更新,但是仍然存在一个问题。假设我有多个保存按钮。现在,当用户单击save,然后在2.499秒内再次单击save时,我希望用户知道信息已存储。在本例中,它将在0.01秒内消失。好的,请检查我的编辑以获得您可能真正期望的内容;)再次感谢您的更新,不幸的是,如果没有bug,仍然无法正常工作->尝试玩一点-一些多次单击,然后休息一下。您可以看到显示状态的间隔2.5秒将变短。有时它甚至会立即消失。很抱歉,我不知道这个问题后面会有这么多问题。事实上,即时
hide()
让事情变得更好。我想你会接受的。否则您必须使用jQuery
queue()
!Post&fiddle已更新。