尝试.slideUp(),用.html('')清除元素,然后重新填充元素和.slideDown()。简单?是。工作吗没有。

在完全向上滑动之前,将重新填充该元素。本质上,您会在窗帘就位之前看到魔术师的离开,这会破坏表演。

jsFiddle:http://jsfiddle.net/Zt6gw/

jQuery的

$('#oh_sort').change(function(){
    $('#oh_list_cont').slideUp(1000);
    $('#oh_list_cont').promise().done(ohReset());
    $('#oh_list_cont').slideDown(1000);
});

function getOpenhouse(){
    var data = $('#oh_sort').val();
    if(data == 'date'){
        $('#oh_list_cont').append('WOOOOOOORK!');
    }
    if(data == 'price'){
        $('#oh_list_cont').append('Please?!');
    }
    if(data == 'city'){
        $('#oh_list_cont').append('OMGWTFBBQ');
    }
}

function ohReset() {
    $('#oh_list_cont').html('');
    getOpenhouse();
}


我已经使用.slideUp()内置的[complete](回调?)功能进行了尝试,但是随后没有任何填充,并且第二个幻灯片动画也不会触发。

最佳答案

在这里,您要立即调用ohReset()而不是将其作为回调传递:

$('#oh_list_cont').promise().done(ohReset());


它应该是:

$('#oh_list_cont').promise().done(ohReset);

10-06 00:13