首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery动画方法中的done和complete选项有什么区别

jquery动画方法中的done和complete选项有什么区别
EN

Stack Overflow用户
提问于 2013-06-16 00:43:05
回答 2查看 8.3K关注 0票数 19

今天,当我在jQuery .animate()方法的选项中阅读它的新特性时,我面临着两个我认为具有相同作用的选项。

这些选项是donecomplete。根据文档,它们是在动画完成时运行的函数。

代码语言:javascript
复制
complete
Type: Function()
A function to call once the animation is complete.

和:

代码语言:javascript
复制
done
Type: Function( Promise animation, Boolean jumpedToEnd )
A function to be called when the animation completes (its Promise object is resolved). (version added: 1.8)

现在我的问题是,这两者之间的区别是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 18:25:33

JQuery使用promise,这意味着在完成时,JavaScript可以从promise转到next function。

假设您已经编写了go to foo和go to bar函数。无论第一次执行完成与否,JQuery都将在第一次开始执行后启动第二次执行。

因此,当您实现promise时,它将等待promise完成。

最后,在您的示例中,一旦完成,将调用complete :)。因此,如果您想在动画完成后进行处理,并在第一个技巧完成时再次执行一些技巧,请将其写入complete。

票数 4
EN

Stack Overflow用户

发布于 2013-07-12 06:39:31

done()在整个jQuery中是全局的,并基于正在完成的promise中的所有事件触发,而不管它们是排队还是异步。

在jquery的网站上查看promises:jQuery Promise

文档中的示例:

代码语言:javascript
复制
var effect = function() {
  return $("div").fadeIn(800).delay(1200).fadeOut();
};

$("button").on("click", function() {
  $("p").append(" Started... ");

  $.when(effect()).done(function() {
    $("p").append(" Finished! ");
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Go</button>
<p>Ready...</p>
<div></div>
<div></div>
<div></div>
<div></div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17125787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档