jQuery delay()似乎不起作用

jQuery delay()似乎不起作用,jquery,delay,Jquery,Delay,我希望图像在被删除之前淡出,但它会立即被删除而不褪色。这是我的密码: $('img').fadeOut(3000).delay(1000).remove(); 如何在移除前让用户看到淡出效果?如果在最后取出.remove,是否有效?您可能需要对操作进行排队,以便它们不会同时发生。希望这有帮助 您可以使用,如: 。延迟仅影响队列的效果 任何不涉及效果队列的链式方法都不受延迟的影响 试一试 或 正如一些人指出的那样,延迟在队列中起作用。我建议使用带有超时的函数作为淡出[持续时间],[完成]的完整参

我希望图像在被删除之前淡出,但它会立即被删除而不褪色。这是我的密码:

$('img').fadeOut(3000).delay(1000).remove();

如何在移除前让用户看到淡出效果?

如果在最后取出.remove,是否有效?您可能需要对操作进行排队,以便它们不会同时发生。希望这有帮助

您可以使用,如:

。延迟仅影响队列的效果

任何不涉及效果队列的链式方法都不受延迟的影响

试一试


正如一些人指出的那样,延迟在队列中起作用。我建议使用带有超时的函数作为淡出[持续时间],[完成]的完整参数

示例代码

移除方法不会等待动画完成,因为它不是动画方法。要在动画事件之后进行删除,可以使用queue方法将函数放入动画队列中:

$('img').fadeOut(3000).delay(1000).queue(function(){
  $(this).remove();
});

延迟仅适用于队列,主要用于动画。在您的情况下,链会更进一步,而不必等待动画结束。您必须执行类似于$'img'.fadeOut3000的操作,函数{$this.remove;};所以我不能在这里使用延迟,那么我能做什么呢?看看更新的评论。或者,如果需要更多时间,您可以添加setTimeout。您确定在setTimeout中的函数引用中吗??我想会马上打电话给你。谢谢你的帮助!如果我想在删除后做一些事情,比如让它褪色,让它变成另一个图像,该怎么办?@drake035您可以在删除后调用您的fadeIn方法,因为删除本质上是同步的,您的fadeIn将在删除后被调用。。
$('img').fadeOut(3000).delay(1000).promise().then(function() {
    $('img').remove();
});
$('img').fadeOut(3000).delay(1000).promise().then(function() {
    $(this).remove();
});
$('img').fadeOut(3000, function () {
    setTimeout(function () {
        alert("Removing now");
        $('img').remove()
    }, 1000)});
$('img').fadeOut(3000).delay(1000).queue(function(){
  $(this).remove();
});