jQuery fadeOut延迟不能在页面加载后第一次工作

时间:2015-11-05 18:19:41

标签: javascript jquery ajax delay 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().fadeOut('slow').delay('5000');

        }
});

这里我使用fadeOut('slow').delay('5000');在5秒后隐藏内容。但是,在第1次ajax请求停止加载页面后,它不能正常工作。并且在第一次请求后它运作良好。内容将在5秒后隐藏。第一次新添加的内容将立即隐藏。

建议将被接受。

2 个答案:

答案 0 :(得分:1)

问题是您在隐藏内容后等待。将.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不是字符串,因此您应该删除引号。

答案 1 :(得分:0)

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

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

(感谢@ tabz100首先看到它)

现在,如果您希望淡出5秒钟,请使用

.fadeOut(5000, 'slow')