回调:动画完成:在 .promise().done() 之后调用
Posted
技术标签:
【中文标题】回调:动画完成:在 .promise().done() 之后调用【英文标题】:Callbacks : animate complete: called after .promise().done() 【发布时间】:2018-05-26 18:32:03 【问题描述】:我制作了一个非常简单的插件供我个人使用,它允许在 jQuery 中进行动画旋转。
我还添加了回调函数。
如果rewind
参数为true
,则旋转被撤消,然后回调。
如果是false
,则在旋转后立即回调。
我不得不这样做,因为由于某种原因,.promise().done(function() ... )
在 complete:
的 animate()
之前被调用
所以我不得不避开这个。
现在的问题是,如果我定位多个元素,则会为每个元素调用回调。因为我假设我使用了each
函数。但我只想要整个动画的一个回调。
这里是fiddle
请问这个怎么做?谢谢!
PS:我在这里看到了一个类似的问题:jQuery $.animate() multiple elements but only fire callback once 但由于.promise().done()
问题而没有申请。而且我不想加变量,我想了解^^
【问题讨论】:
【参考方案1】:您可以尝试使用each
的索引,并且仅在它是第一个元素时才调用回调
类似:
return this.each(function(i)
....
....
complete: function()
i==0 && a.callback && a.callback()
【讨论】:
有史以来最快、最有效的答案 :) 谢谢!它完美地工作 我在另一个地方看到了你调用回调的地方。不太确定它在那里是如何工作的。没看很久 我在两个地方调用它,一个是没有倒带选项,一个是有倒带选项。避免前后动画之间的回调。以上是关于回调:动画完成:在 .promise().done() 之后调用的主要内容,如果未能解决你的问题,请参考以下文章
layui数据表格分页加载动画,自己定义加载动画,"加载中..."
JQuery的异步回调支持 - PromiseDeferred