尝试.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()内置的[完整](回调?)函数试过这个,但是没有任何东西填充,第二个幻灯片动画也没有触发。
答案 0 :(得分:5)
这里您立即调用ohReset()
而不是将其作为回调传递:
$('#oh_list_cont').promise().done(ohReset());
应该是:
$('#oh_list_cont').promise().done(ohReset);
答案 1 :(得分:0)
$( '#oh_sort' ).change( function()
{
$( '#oh_list_cont' ).slideUp( 1000, function()
{
$( '#oh_list_cont' ).promise().done( ohReset() );
} );
$( '#oh_list_cont' ).slideDown( 1000 );
});
这样的事情?