为什么我不能用jQuery延迟删除调用

我希望div为fadeOut然后被删除:

$('#div').delay(1000).fadeOut(300); $('#div').delay(1300).remove(); 

不幸的是,这只是直接删除div,没有延迟。 为什么我不能让删除操作被延迟? 有什么解决方案?

谢谢

如果你希望在淡化完成后删除元素,你可以使用fadeOut的回调参数。

 $('#div').delay(1000).fadeOut(300, function(){ $(this).remove(); }); 

.delay()仅适用于通过动画队列的方法。 因此,它适用于.fadeOut() (动画),但不适用于.remove() (不是动画)。

为了向您展示这是多么专业,这不会延迟:

 $('#div').delay(1000).hide(); 

但是,这样做:

  $('#div').delay(1000).hide(1); 

在hide方法上设置一个持续时间会将其转换为动画,然后使用动画队列,然后使用.delay()

要延迟删除项目,可以使用setTimeout()调用:

 setTimeout(function() { $('#div').remove(); }, 1300); 

或者有点棘手并在动画上使用完成函数,如下所示:

 $('#div').delay(1000).hide(1, function() { $(this).remove(); }); 

你可以尝试这样的事情。

 $('#div').delay(1000).fadeOut(300,function(){ setTimeout(function(){ $('#div').remove() } ,1300); }); 

我认为它的工作原理应该如此。 希望能帮助到你