我正在尝试在进行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函数,因为警报没有出现......我尝试过其他方法(例如:How to show loading spinner in jQuery?)尝试使其工作但是尚未成功......
有人能帮忙吗?
谢谢。
答案 0 :(得分:0)
您很可能因意外令牌而收到错误,因为您声明的功能不正确。
Uncaught SyntaxError: Unexpected token {
您需要使用以下任一方式声明一个函数:
function getCategories () { }
或者:
var getCategories = function () { };
答案 1 :(得分:0)
我想我在这里找到了解决方案($(document).ajaxstart not firing)
似乎ajaxStart仅在使用XMLHttpRequest
时有效。如果您使用JSONP,则不使用XMLHttpRequest
。相反,它会插入<script>
标记来实现此目标。
我只是使用了上面链接中建议的解决方法。