在animate
内的所有do_animations
方法完成后,我需要帮助进行回调。对于一个animate
,我可以调用promise
和done
函数。我尝试使用$.Callbacs
,但我不知道如何使用fire
方法制作承诺对象。
function random_num(a, b) {
return Math.floor(Math.random() * (b - a + 1)) + a;
}
function do_animations() {
var n = random_num(1, 5);
for (var i = 0; i < n; i++) {
var width = random_num(-50, 50);
$('#rec').animate({'left': '+=' + width + 'px'}, 300);
}
}
$(document).ready(function(){
do_animations();
});
最佳解决方案是
do_animations().done(function(){ ... });
答案 0 :(得分:0)
使用promise():
function do_animations() {
var n = random_num(1, 5),
$rec = $('#rec');
for (var i = 0; i < n; i++) {
var width = random_num(-50, 50);
$rec.animate({'left': '+=' + width + 'px'}, 300);
}
return $rec.promise();
}
$(document).ready(function(){
do_animations().done(function(){ alert("All animations done!") });
});