我一直在阅读有关排队JS回调的内容,而不是将它们堆叠在这里, How do I animate in jQuery without stacking callbacks?
我试过玩Julian Aubourg的答案,我注意到从函数中删除了“return”语句后,一切都发生了。
我只是想知道这些返回语句的行为是什么,以及它们在使这段代码同步时扮演的角色。
$('div1').fadeOut('slow').promise().pipe(function() {
return $('div2').fadeOut('slow');
}).pipe(function() {
return $('div3').animate({ top: 500 }, 1000 );
});
答案 0 :(得分:4)
所有jQuery动画现在都会返回自己的承诺,所以基本上你会在动画完成时返回一个已解决的承诺:
return $('div2').fadeOut('slow');
这相当于
var def = new $.Deferred();
$('div2').fadeOut('slow', function() {
def.resolve();
});
return def.promise();