gpt4 book ai didi

ajax - $(document).ajaxstart 未触发

转载 作者:行者123 更新时间:2023-12-01 00:07:47 24 4
gpt4 key购买 nike

我有两个函数可以调用 $.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;
}
});
});
}
});

最佳答案

如果 jQuery 在内部使用 XMLHttpRequest ,则仅触发这些事件( ajaxStartajaxStop )对象。

但是,如果您使用回调参数 ( JSONP ) 从不同的域请求数据,jQuery 不会使用 XMLHttpRequest ,而是通过插入 <script> 来实现这一点标签。

这就是事件没有被触发的原因。

<小时/>作为解决方法,您可以在 $.getJSON 之前开始加载动画。调用,并将其停止在 function(data) {..内 block 。

关于ajax - $(document).ajaxstart 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com