jQuery动画方法中完成选项和完整选项之间的区别是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (71)

今天,当我阅读jQuery .animate()方法的新特性时,我遇到了两个我认为具有相同操作的选项。

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

complete
Type: Function()
A function to call once the animation is complete.

和:

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)

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

提问于
用户回答回答于

JQuery使用承诺,这意味着在完成JavaScript时可以从承诺转到下一个功能。

假设你已经写了foo并进入条形函数。JQuery将在第一次开始执行后从第二个开始执行,而不管第一个完成。

所以当你实现诺言时,它会等待以前完成。

所以如果你想在动画完成时进行处理,并且在第一个技巧完成时再做一些技巧,请将其写入完整。

用户回答回答于

Done()是全局的,它贯穿于整个jQuery,并基于承诺完成的所有事件触发,不管它们是排队还是异步。

示例:

var effect = function() {
  return $("div").fadeIn(800).delay(1200).fadeOut();
};

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

  $.when(effect()).done(function() {
    $("p").append(" Finished! ");
  });
});
<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>

扫码关注云+社区

领取腾讯云代金券