在多个jQuery选择器上运行单个回调

时间:2015-09-16 14:16:15

标签: jquery

$('#one, #two').animate({opacity: 100}, function() {
  console.log($.now());
});

因为此代码有2个选择器,所以回调运行两次。有没有办法让它只运行一次?

1 个答案:

答案 0 :(得分:4)

您可以使用.promise()deferred.then()等待动画队列完成,而不是使用完整的回调。

$('#one, #two').animate({opacity: 1}).promise().then(function() {
  console.log($.now());
});

请注意,promise将在整个队列完成后解析,因此如果在第一个动画完成之前排队其他动画,则需要使用其他技术。