我有一个页面使用
$(id).show("highlight", {}, 2000);
在我启动ajax请求时突出显示一个元素,这可能会失败,所以我想使用类似的东西
$(id).show("highlight", {color: "#FF0000"}, 2000);
在错误处理程序中.问题是,如果第一个突出显示尚未完成,则第二个突出显示在队列中,并且在第一个突出显示准备好之前不会运行.因此问题:我可以以某种方式阻止第一个效果?
我将此列为已接受答案的评论,但我认为将其作为独立答案发布是一个好主意,因为它似乎可以帮助一些人遇到问题 .stop()
仅供参考 - 我也在寻找这个答案(试图阻止Pulsate效应),但.stop()
我的代码确实有.
在审核了文档后,我需要 .stop(true, true)
来自jQuery文档:
http://docs.jquery.com/Effects/stop
停止匹配元素上当前运行的动画....
在
.stop()
元素上调用时,会立即停止当前运行的动画(如果有).例如,如果.slideUp()
在.stop()
调用when时隐藏了一个元素,则现在仍然会显示该元素,但该元素将是其先前高度的一小部分.不调用回调函数.如果在同一元素上调用多个动画方法,则后面的动画将放置在元素的效果队列中.这些动画直到第一个动画完成才会开始.当
.stop()
被调用时,在队列中的下一个动画立即开始.如果为clearQueue
参数提供值true
,则队列中的其余动画将被删除,并且永远不会运行.如果
jumpToEnd
参数的值为true,则当前动画将停止,但会立即为该元素指定每个CSS属性的目标值.在上面的.slideUp()
示例中,元素将立即隐藏.然后立即调用回调函数,如果提供的话......