Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$(文档)。ajaxstart未启动_Ajax_Jquery_Flickr - Fatal编程技术网

$(文档)。ajaxstart未启动

$(文档)。ajaxstart未启动,ajax,jquery,flickr,Ajax,Jquery,Flickr,我有两个函数可以调用$.getJSON——一个查看存储在服务器上的JSON,另一个调用Flickr 我有这个: $(document).ajaxStart(function(){ alert('requeststart'); //$('#loading').show(); }); 当使用某个给定路径调用$.getJSON时,它会工作,但当$.getJSON调用Flickr时,它不会发出警报。Flickr调用可以正常工作,所有内容都可以正常加载。。。但

我有两个函数可以调用$.getJSON——一个查看存储在服务器上的JSON,另一个调用Flickr

我有这个:

$(document).ajaxStart(function(){ 
        alert('requeststart');
        //$('#loading').show(); 
    });
当使用某个给定路径调用$.getJSON时,它会工作,但当$.getJSON调用Flickr时,它不会发出警报。Flickr调用可以正常工作,所有内容都可以正常加载。。。但它不会启动ajaxStart。(我正在使用ajaxStart和ajaxStop显示正在加载的gif)

有什么想法吗

以下是调用Flickr的函数:

$('#submit').on("click", function (evt) {
    evt.preventDefault();
    var tag = $('input').val();
    if (tag == "") {
        alert("please enter a tag");
    }
    else {
      $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",{tags: tag, tagmode: "any", format: "json" },
      function(data) {
        $.each(data.items, function(i,item){
            var name = names[index];
            $("#" + name).empty();
            $('<img src="' + item.media.m.replace("_m.jpg", ".jpg") + '" />').appendTo("#" + name);
            $('<a href="' + item.link + '"> ' + item.title + '</a>').appendTo("#" + name );
            index ++;
            if (i==5) { 
                index = 0;
                }       
        });
      });
    }
});
$(“#提交”)。在(“单击”上,函数(evt){
evt.preventDefault();
var标记=$('input').val();
如果(标记==“”){
警报(“请输入标签”);
}
否则{
$.getJSON(“http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?“,{tags:tag,tagmode:“any”,格式:“json”},
功能(数据){
$.each(data.items,function(i,item){
变量名称=名称[索引];
$(“#”+name).empty();
$('')。附加到(“#”+名称);
$('')。附加到(“#”+名称);
索引++;
如果(i==5){
指数=0;
}       
});
});
}
});

jQuery仅在内部使用
XMLHttpRequest
对象时触发这些事件(和)

但是,如果使用回调参数(
JSONP
)从不同的域请求数据,jQuery不会使用
XMLHttpRequest
,而是通过插入
标记来完成

这就是为什么事件没有被触发。

作为一种解决方法,您可以在调用
$.getJSON
之前开始加载动画,并在
函数(数据){..
块内停止加载动画。

对于乘法请求,您也可以单独计算它们。我是这样做的:

var loader = 0;       
function showloader(cnt){
    loader = loader + cnt;
     if(loader < 1) {
        $('#loading').hide();
      } else {
        $('#loading').show();
      }
}
A很好。
showloader(1);
$.getJSON( 
   [...] 
 }).done(function() { 
   showloader(-1);
   [...]
});