Jquery delay()未按预期工作

Jquery delay()未按预期工作,jquery,ajax,Jquery,Ajax,我正在使用AJAX请求通过jQuery提交表单。成功提交表单后,我想在3秒钟内显示一条成功消息,然后我想隐藏这条成功消息。为此,我使用jQuerydelay()方法使用以下代码 但不知何故,这个delay()方法并没有像我期望的那样工作。它会立即显示消息,然后隐藏消息 我想显示消息3秒钟,然后它应该被隐藏。你能告诉我为什么它不工作吗 function upload_project_doc(element, event) { e = $(element); event.preven

我正在使用AJAX请求通过jQuery提交表单。成功提交表单后,我想在3秒钟内显示一条成功消息,然后我想隐藏这条成功消息。为此,我使用jQuery
delay()
方法使用以下代码

但不知何故,这个
delay()
方法并没有像我期望的那样工作。它会立即显示消息,然后隐藏消息

我想显示消息3秒钟,然后它应该被隐藏。你能告诉我为什么它不工作吗

function upload_project_doc(element, event) {
    e = $(element);
    event.preventDefault();
    $('#up_project_doc_img').show();
    var formData = new FormData(e.parents('form')[0]);

    $.ajax({
        url: 'up_project_doc.php',
        type: 'POST',
        xhr: function () {
            var myXhr = $.ajaxSettings.xhr();
            return myXhr;
        },
        success: function (data) {
            $("#project_up_result").html(data);
            $('#project_up_result').show();
            $('#project_up_result').delay(3000).fadeOut('slow');
            $('#up_project_doc_img').hide();
            getProjectForm(<? php echo $p_id; ?>);
        },
        data: formData,
        cache: false,
        contentType: false,
        processData: false
    });
}
功能上传项目文档(元素、事件){
e=$(要素);
event.preventDefault();
$(“#up_project_doc_img”).show();
var formData=新的formData(例如,父项('form')[0]);
$.ajax({
url:'up_project_doc.php',
键入:“POST”,
xhr:函数(){
var myXhr=$.ajaxSettings.xhr();
返回myXhr;
},
成功:功能(数据){
$(“#项目结果”).html(数据);
$(“#项目_up_结果”).show();
$('project'u up'u result')。延迟(3000)。淡出('slow');
$(“#up_project_doc_img”).hide();
getProjectForm();
},
数据:formData,
cache:false,
contentType:false,
processData:false
});
}
我的表格有点大,但看起来是这样的:

<td align="left" width="160">
  <button class="search_submit" onclick="upload_project_doc(this,event);">
    <b>Upload</b>
  </button>
</td>

上传

Try
$(“#项目_up_结果”).show().delay(3000)。fadeOut('slow')@artm我正在尝试。@atm未按预期工作。@artm这与OP的代码完全相同。您正在延迟淡出,然后立即隐藏淡出。删除这行代码$('#up_project_doc_img')。hide();它应该适合你。试试
$('project\u up\u result')。show()。delay(3000)。fadeOut('slow')@artm我正在尝试。@atm未按预期工作。@artm这与OP的代码完全相同。您正在延迟淡出,然后立即隐藏淡出。删除这行代码$('#up_project_doc_img')。hide();它应该对你有用。