我正在尝试使用jQuery的AJAX函数,并试图模拟真实服务器会延迟本地主机上平稳数据请求的情况。
因此,我编写了类似于以下代码的代码:
$('form').submit(function (event) {
event.preventDefault();
$('#response').html('<p>Posting...</p>').fadeIn().delay(2000).queue(function () {
$.post (
'some_url.php',
{/*values here*/},
function (response) {
$('#response').html(response).delay(1000).fadeOut('slow');
//The line below is to reset the form element
$('input[type="text"], textarea').val(' ');
});
});
});
我在这里的基本操作是延迟 $.post 方法2秒,以便可以看到“发布中...”消息。 当2秒时间结束后,我希望文本改变为我收到的响应,并保持1秒钟,然后淡出。
第一个延迟工作得非常完美,Ajax调用也完美地运行,但问题在于-由于某种原因,第二次延迟没有被读取,一旦显示了响应消息,它就无法消失 :)
我的问题是:为什么会发生这种情况,我该如何解决它?