为什么在发送AJAX请求之前显示此图像并在完成时隐藏?

时间:2015-11-26 00:03:46

标签: javascript jquery html css ajax

我正在尝试在处理AJAX请求时显示“加载”gif。所以我有

nextp

beforeSend: function () { 
   $('.form-sending-gif').show(); 
   console.log("The beforeSend function was called"); 
}

其中complete: function () { $('.form-sending-gif').hide(); console.log("The complete function was called"); } 仅用于测试目的。由于未知的原因,我已经确认两个函数都在触发,但图像没有按预期显示隐藏。我已经在console.log中输入了控制台,以验证所述功能是否符合预期。在页面加载图像是

我做错了什么?

1 个答案:

答案 0 :(得分:0)

从你的问题中得到更多的细节,但是很难让人感觉不舒服,但不管怎么说都是不好的。

你可以尝试这样的事情。



$(function () {

    // On click func
    $('#test').click(function(){
        // Set loading image to display here
        $('#test').text('Greetings')

        // Simulated ajax request(put your ajax here)
        var ajaxCallDfd = $.Deferred();
        setTimeout(function () {
            ajaxCallDfd.resolve();
        }, 1000);

        // When the ajax is finished Then we display the loaded image.
        $.when(ajaxCallDfd).then(function(){
            $('#test').text('Goodbye')
        })
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="test"> Hi </div>
&#13;
&#13;
&#13;