我制作了一个非常简单的插件供我个人使用,允许在 jQuery 中进行动画旋转。
我还添加了回调函数。
如果rewind
参数为true
,则旋转被撤消,然后回调。
如果为false
,则在旋转后立即回调。
我必须这样做,因为由于某种原因,.promise().done(function(){ ... })
在 complete:
之前被调用animate()
所以我不得不回避这个。
现在的问题是,如果我定位多个元素,则会为每个元素调用回调。因为我认为我使用了一个 each
函数。但我只想对整个动画进行一次回调。
这是fiddle
请问如何做到这一点?谢谢!
PS:我在这里看到了类似的问题:jQuery $.animate() multiple elements but only fire callback once但由于 .promise().done()
问题而未申请。而且我不想添加变量,我想理解^^
最佳答案
您可以尝试使用each
的索引,并且仅在它是第一个元素时调用回调
类似于:
return this.each(function(i) {
....
....
complete: function() {
i==0 && a.callback && a.callback()
}
关于javascript - 回调 : animate complete: called after . Promise().done(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47783356/