我为个人使用制作了一个非常简单的插件,允许在jQuery中进行动画旋转。
我添加了回调函数。
如果rewind
参数为true
,则撤消轮播,然后进行回调。
如果是false
,则在轮换后立即进行回调。
我必须执行此操作,因为出于某种原因,在.promise().done(function(){ ... })
complete:
之前调用animate()
所以我不得不穿这个。
现在的问题是,如果我定位多个元素,则会为每个元素调用回调。因为我使用了我认为的each
函数。但我只希望对整个动画进行一次回调。
以下是fiddle
请问怎么做?谢谢!
PS:我在此处看到了类似的问题:jQuery $.animate() multiple elements but only fire callback once但由于.promise().done()
问题而无法应用。而且我不想添加变量,我想了解^^
答案 0 :(得分:1)
您可以尝试使用each
的索引,只有在它是第一个元素时才调用回调
类似的东西:
return this.each(function(i) {
....
....
complete: function() {
i==0 && a.callback && a.callback()
}