当我使用jQuery fadeOut方法时,我遇到了一个特殊的问题。
当我使用下面的代码时它会逐渐淡出。
$('#id').fadeOut("slow" );
但是当我使用下面的代码时,它不会淡出,它只是从屏幕上消失。
$('#id').fadeOut("slow" ).remove();
有谁能说出问题是什么?
有没有办法让第二个淡出?
由于
答案 0 :(得分:6)
问题是fadeOut是一种动画方法,这意味着它会随着时间的推移而发生,但是你会立即调用remove。相反,您可以使用fadeOut的回调签名:
$('#id').fadeOut('slow', function(){
$(this).remove();
});
答案 1 :(得分:1)
使用callBack function
,正常CallBacks
将在执行parental
任务后触发一次。
$('#id').fadeOut("slow",function(){ $(this).remove() } );
答案 2 :(得分:0)
您需要等待fadeOut()完成,然后才能使用完整的回调将其从dom中删除。
$('#id').fadeOut("slow", function(){
$(this).remove()
} );
答案 3 :(得分:0)
因为.remove()
方法与动画同时运行,导致#id
在执行remove()
时尚未完全消失。
您需要将remove()
放在淡出回调
$('#id').fadeOut( function() { //the fadeout is finished call the callback function
$(this).remove();
});
答案 4 :(得分:0)
我非常确定您不需要使用remove()
函数,因为fadeOut
也会在淡入淡出时删除该元素。