首先在两个html元素上执行slideup和fadeout然后继续

时间:2014-10-06 11:36:55

标签: jquery fadeout slideup

我必须上传modalbox-dialog以及fadout modalbox-overlay,这必须同时发生,因此无法在slideup的done函数中淡出

$('#modalbox-dialog').slideUp({
    done:function() {

    }
});

$('#modalbox-overlay').fadeOut();

完成幻灯片和淡出后,必须执行这些操作

$('.nav > *').remove();
$('#foo-helper > *').remove();
$(FilterView.currentDiv).insertAfter('#hidden-divs-helper');
FilterView.currentDiv = '';

2 个答案:

答案 0 :(得分:0)

使用$.when()

$(document).ready(function() {
    var f1 = $('#modalbox-dialog').slideUp({duration:10000})
    var f2 = $('#modalbox-overlay').fadeOut();

    $.when( f1, f2 ).done(function ( v1, v2 ) {
        alert('finished both');
    });
});

看到这个小提琴:http://jsfiddle.net/oLm8L1pL/

我将持续时间设置得特别高,以证明效果。

答案 1 :(得分:0)

这是我的解决方案

hide: function () {

    var deferred = $.Deferred();

    var slideUp = $('#modalbox-dialog').slideUp();
    var fadeOut = $('#modalbox-overlay').fadeOut();

    $.when(slideUp, fadeOut).done(function() {
        deferred.resolve();
    });

    return deferred.promise();
}

希望它有助于进一步提问:)