尝试.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();
}
Run Code Online (Sandbox Code Playgroud)
我用.slideUp()内置的[完整](回调?)函数试过这个,但是没有任何东西填充,第二个幻灯片动画也没有触发.
在这里,您ohReset()立即调用而不是将其作为回调传递:
$('#oh_list_cont').promise().done(ohReset());
Run Code Online (Sandbox Code Playgroud)
它应该是:
$('#oh_list_cont').promise().done(ohReset);
Run Code Online (Sandbox Code Playgroud)