回调:动画完成:在.promise()之后调用。完成()

时间:2017-12-12 23:43:09

标签: javascript jquery callback complete

我为个人使用制作了一个非常简单的插件,允许在jQuery中进行动画旋转。

我添加了回调函数。

如果rewind参数为true,则撤消轮播,然后进行回调。

如果是false,则在轮换后立即进行回调。

我必须执行此操作,因为出于某种原因,在.promise().done(function(){ ... }) complete:之前调用animate()

所以我不得不穿这个。

现在的问题是,如果我定位多个元素,则会为每个元素调用回调。因为我使用了我认为的each函数。但我只希望对整个动画进行一次回调。

以下是fiddle

请问怎么做?谢谢!

PS:我在此处看到了类似的问题:jQuery $.animate() multiple elements but only fire callback once但由于.promise().done()问题而无法应用。而且我不想添加变量,我想了解^^

1 个答案:

答案 0 :(得分:1)

您可以尝试使用each的索引,只有在它是第一个元素时才调用回调

类似的东西:

return this.each(function(i) {
   ....
   ....
   complete: function() {
        i==0 && a.callback &&  a.callback()
  }