1

我试图在进行 AJAX 调用后显示加载图像。

目前我有以下Javascript代码:

window.onload = function(){

var img = document.createElement("IMG");
img.src = "http://i.stack.imgur.com/FhHRx.gif";

function getCategories(){
    $.ajax({
        url: //url here,
        dataType:'jsonp',           
        success: function(data){

            //code here

        },
        statusCode: {
            404: function() {
                alert:('There was a problem with the server');
            }
        }

    }); 
}



$(document).ajaxStart(function(){   
    alert('here');
    var div = document.createElement("div");
    div.id = "id1";
    document.getElementById('id1').appendChild(img);
    document.body.appendChild(div);

}).ajaxStop(function(){
    var element = document.getElementById('id1');
    element.parentNode.removeChild(element);

});

但是,我发现代码甚至没有进入 ajaxStart 函数,因为警报没有出现......我尝试了其他方法(例如:如何在 jQuery 中显示加载微调器?)尝试让这个工作但有目前还没有成功...

请问有人可以帮忙吗?

谢谢你。

4

2 回答 2

0

我想我在这里找到了解决方案($(document).ajaxstart 没有触发

似乎 ajaxStart 仅在使用时才有效XMLHttpRequest。如果使用 JSONP,XMLHttpRequest则不使用。相反,它插入一个<script>标签来实现这个目标。

我只是使用了上面链接中建议的解决方法。

于 2013-10-18T00:40:39.370 回答
0

您很可能会收到 Unexpected Token 的错误,因为您错误地声明了一个函数。

Uncaught SyntaxError: Unexpected token { 

您需要使用以下任一方法声明一个函数:

function getCategories () { }

或者:

var getCategories = function () { };
于 2013-10-17T14:13:00.103 回答