淡入jQuery创建队列

时间:2014-03-12 16:50:48

标签: javascript jquery

我正在尝试创建一个简单的序列:找到第一个元素,隐藏其兄弟,然后在中淡化它。我有这种工作;然而,它不会等待其兄弟姐妹首先淡出:

var $firstCaption = $('.caption').first();

$firstCaption.appendTo('.caption-content').siblings('.caption').fadeOut(function(){
     $firstCaption.fadeIn(); // this is not waiting
});

我可以使用延迟,但我认为这是一个非常混乱的解决方案?还有另一种方法吗?

的jsfiddle:

http://jsfiddle.net/tmyie/8VjLD/

1 个答案:

答案 0 :(得分:5)

您可以使用承诺:

DEMO jsFiddle

$('a').click(function () {
    var $firstCaption = $('.caption').first();
    $firstCaption.appendTo('.caption-content').siblings('.caption').fadeOut().promise().done(function () {
        $firstCaption.fadeIn();
    });
});

顺便说一下,如果按钮连续多次点击,你可以在这里使用.finish()

DEMO with finish

$firstCaption.appendTo('.caption-content').siblings('.caption').finish()...