jQuery fadeOut方法不会淡出元素

时间:2014-01-15 06:49:10

标签: jquery

当我使用jQuery fadeOut方法时,我遇到了一个特殊的问题。

当我使用下面的代码时它会逐渐淡出。

$('#id').fadeOut("slow" );

但是当我使用下面的代码时,它不会淡出,它只是从屏幕上消失。

$('#id').fadeOut("slow" ).remove();

有谁能说出问题是什么?

有没有办法让第二个淡出?

由于

5 个答案:

答案 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也会在淡入淡出时删除该元素。