2011-12-08 51 views
0

我有一个程序,在给定一组YouTube视频ID的情况下,调用Youtube API并返回有关所述视频的数据。我通过以下方式呼叫:ajaxStop不在DOM元素上

$.getScript("http://gdata.youtube.com/feeds/api/videos/"+encodeURIComponent(id)+"?v=2&alt=json-in-script&callback=youtubeFeedCallback"); 

这是针对阵列中的每个视频ID完成的。有没有办法使用ajaxStop然后做一些事情(在我的情况下修改DOM)一旦所有这些请求完成?我不会在任何类型的.click或.mouseover或其他类似事件上执行此操作,这些请求仅在加载页面时发送出去。我试图做的:

$.ajaxStop(function() { (do something here) }); 

但我得到了以下错误:遗漏的类型错误:对象功能(A,B){返回新e.fn.init(A,B,H)}有没有方法“ajaxStop ”。如果某些请求返回403 Forbiddens,这也会起作用吗?

编辑:解决

固定它,虽然我的解决方案是一个有点哈克。而不是使用$ .getScript,而是使用$ .ajax函数。然后我有一个全局计数器变量,并使用$ .ajax的“错误”方法,增加错误计数或成功计数。然后,当count变量等于我的数组长度时,我只是打电话给我想要的。我仍然喜欢听到有没有更好的方法来做到这一点。

回答

0

尝试使用ajaxComplete事件。有一个jQuery方法。 http://api.jquery.com/ajaxComplete/

您可能需要对请求的数量进行计数,以便您知道所有请求的完成情况。

0

我解决了这个问题,当它与div块链接。

实施例:

$("#smthing").ajaxComplete(function(){do smth})