jQuery fadeOut延迟在页面加载后第一次不起作用

jQuery fadeOut delay not working first time after page load

本文关键字:加载 第一次 不起作用 fadeOut 延迟 jQuery      更新时间:2023-09-26

我已经实现了以下代码:

$.ajax({
        type: 'POST',
        data: "id="+id,
        url: 'xyz.php',
        async: false,
        dataType: 'json',
        success: function(data){                
            $('#message_'+id).html('Estás de acuerdo<span class="msg_order_close"></span>').show().fadeOut('slow').delay('5000');
        }
});

在这里,我使用fadeOut('slow').delay('5000');在5秒钟后隐藏内容。但在第一次ajax请求页面停止加载后,它第一次就不起作用了。而且在第一次请求后效果非常好。内容将在5秒钟后隐藏。第一次添加的新内容将立即隐藏。

建议将被接受。

问题是您在隐藏内容后等待。将.delay()部分放在de fadeOut()函数之前。

$.ajax({
        type: 'POST',
        data: "id="+id,
        url: 'xyz.php',
        async: false,
        dataType: 'json',
        success: function(data){                
            $('#message_'+id).html('Estás de acuerdo<span class="msg_order_close"></span>').show().delay(5000).fadeOut('slow');
        }
});

此外,5000不是一个字符串,因此您应该删除引号。

如果你想在淡出前延迟,你需要切换顺序:

.delay(5000).fadeOut('slow')

(感谢@tabz100第一次看到)

现在,如果你想淡出5秒,那么使用

.fadeOut(5000, 'slow')