我有一个页面,它使用
$(id).show("highlight", {}, 2000);为了在启动ajax请求时突出显示一个元素,这可能会失败,因此我希望使用如下内容
$(id).show("highlight", {color: "#FF0000"}, 2000);在错误处理程序中。问题是,如果第一个高亮显示还没有完成,第二个高亮显示被放在一个队列中,直到第一个高亮显示准备好才会运行。因此出现了这样的问题:我能以某种方式阻止第一种效果吗?
发布于 2008-09-12 20:42:48
从jQuery文档中:
http://docs.jquery.com/Effects/stop
在匹配的元素上停止当前运行的动画....
在元素上调用.stop()时,当前正在运行的动画(如果有)会立即停止。例如,如果在调用.stop()时使用.slideUp()隐藏了一个元素,则该元素现在仍将显示,但将是其以前高度的一小部分。未调用回调函数。
如果对同一元素调用了多个动画方法,则后面的动画将被放入该元素的效果队列中。在第一个动画完成之前,这些动画不会开始。当调用.stop()时,队列中的下一个动画立即开始。如果为clearQueue参数提供的值为true,则队列中的其余动画将被删除,并且永远不会运行。
如果为jumpToEnd参数提供的值为true,则当前动画将停止,但会立即为该元素提供其每个CSS属性的目标值。在上面的.slideUp()示例中,元素将被立即隐藏。然后立即调用回调函数,如果提供了...
发布于 2012-04-23 20:42:33
我列出了这篇文章作为对公认答案的评论,但我认为将其作为独立答案发布是一个好主意,因为它似乎可以帮助一些有 .stop()问题的人
仅供参考-我也在寻找这个答案(试图阻止脉动效应),但我的代码中确实有一个.stop()。
查看完文档后,我需要.stop(true, true)
发布于 2016-02-22 19:10:42
.stop(true,true)将冻结效果,因此如果它在当时是不可见的,那么它将保持不可见。这可能是一个问题,如果你使用的是脉动效应。
$('#identifier').effect("pulsate", {times:5}, 1000);为了解决这个问题,我添加了
$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);https://stackoverflow.com/questions/59896
复制相似问题