2011-12-08 11 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を使って何かを行う方法がありますか? .clickや.mouseoverなどのイベントでこれをやっているわけではありません。これらのリクエストは、ページがロードされたときに送信されます。

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

しかし、私は、次のエラー得た:私は実行しようとしたキャッチされない例外TypeError:目的関数は(a、b)は、{新しいe.fn.init(B、H)を返す}いかなる方法「ajaxStopを有していません'また、403 Forbiddensを返す要求の一部がある場合は、この方法でも動作しますか?

編集:私の解決策は少しハックですが、それを修正

を解決しました。 $ .getScriptを使用する代わりに、代わりに$ .ajax関数を使用しました。私はグローバルカウンタ変数を使用し、$ .ajaxの "error"メソッドを使用して、エラー時または成功時にカウントをインクリメントしました。次に、count変数が配列の長さと等しいときに、私が望むものを呼び出しました。 Idはこれを行うより良い方法があるかどうか聞いています。

答えて

0

ajaxCompleteイベントを使用してください。それにはjQueryメソッドがあります。 http://api.jquery.com/ajaxComplete/

すべてのリクエストが完了したときにわかるようにリクエスト数をカウントする必要があります。

0

私はこの問題を、divブロックとリンクするときに解決します。

例:

$("#smthing").ajaxComplete(function(){do smth}) 
関連する問題