2011-12-08 73 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})