何时返回jQuery函数而不是只调用它?

时间:2013-12-05 17:07:17

标签: javascript jquery callback

我一直在阅读有关排队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 );
    });

1 个答案:

答案 0 :(得分:4)

所有jQuery动画现在都会返回自己的承诺,所以基本上你会在动画完成时返回一个已解决的承诺:

return $('div2').fadeOut('slow');

这相当于

var def = new $.Deferred();
$('div2').fadeOut('slow', function() {
    def.resolve();
});
return def.promise();