jQuery stop(true,true)跳转到队列中所有动画的结尾

Jes*_*sse 10 javascript queue jquery animation

我一直在使用jQuery的stop(true, true)方法来清除正在运行的动画,以便下一个立即启动.我注意到第一个参数clearQueue清除了整个动画队列,但第二个参数jumpToEnd只跳转到当前运行动画的末尾,而不是从队列中删除的动画.有没有办法让它清晰并跳到所有排队动画的结尾?

我最终链接了几个stop(false, true)调用,但这只会处理3个排队的动画,例如.

$(this)
  .stop(false, true)
  .stop(false, true)
  .stop(false, true)
  .addClass('hover', 200);
Run Code Online (Sandbox Code Playgroud)

编辑:

stopAll根据Ates Goral的回答,我最终添加了自己的方法:

$.fn.extend({ stopAll: function () {
    while (this.queue().length > 0)
      this.stop(false, true);
    return this;
  } });
Run Code Online (Sandbox Code Playgroud)
$(this).stopAll().addClass('hover', 200);
Run Code Online (Sandbox Code Playgroud)

我希望其他人觉得这很有用.

Ate*_*ral 6

链接多个stop(false, true)是有道理的.您可以检查队列长度,而不是对固定数量的链式调用进行硬编码:

while ($(this).queue().length) {
    $(this).stop(false, true);
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/AB33X/


Vse*_*nov 4

jQuery 1.9 引入了.finish()方法,它正是实现了这一点。