最近、イメージやスタイルシートなど、ページのすべてのリソースがロードされたときを検出する方法を尋ねました。答えは戻ってきて、$(window).load();を使ってください。 jQueryのメソッドリソースがajax経由でロードされたときを検出する
私の質問は、コンテンツがAJAX経由で読み込まれたときをどのように検出するのかです。 AJAXはいくつかのimg要素、例えばDOMを注入します...それらの画像の読み込みがいつ終わったのか、どうすればわかりますか?
最近、イメージやスタイルシートなど、ページのすべてのリソースがロードされたときを検出する方法を尋ねました。答えは戻ってきて、$(window).load();を使ってください。 jQueryのメソッドリソースがajax経由でロードされたときを検出する
私の質問は、コンテンツがAJAX経由で読み込まれたときをどのように検出するのかです。 AJAXはいくつかのimg要素、例えばDOMを注入します...それらの画像の読み込みがいつ終わったのか、どうすればわかりますか?
$.get()
または$.post()
関数では、ajax要求が完了したときに呼び出される関数の名前を指定できます。たとえば:
$.get("something.php",{data:'test'},foo);
function foo()
{
// This function will be called when the request has completed
}
または:Ajaxがフェッチ時に検出
$.get("something.php",{data:'test'},function()
{
//This function will be called in the same way
}
);
は簡単です:jQueryの中で定義されたAjaxのイベントを使用します。http://docs.jquery.com/Ajax
しかし、私は、あなたが求めているか分かりません同じこと。イメージのロードが完了したときを検出するには(おそらく、イメージのsrc属性が変更されたときのイベントと同じになります)、突然変異イベントを使用できます。 http://wiki.github.com/jollytoad/jquery.mutation-events 歓声、
jrh。
イメージsrcは常にリソースに設定されます...リソースがフェッチされると変更されません。 –
あなたが成功したリクエストに設定されたコールバック関数を持つことができます$.ajaxを呼び出す場合:
$.ajax({
url: _url,
type: _type,
data: _data,
dataType: _dataType,
success: _success
})
var _success = function(result) {
$html = $(result);
alert('HTML downloaded');
// inject HTML into DOM here
}
あなたは画像要素を取得するために$のhtmlを通過する必要がありますし、それらのそれぞれのために画像はイメージがロードされたときに起動ロード関数コールバックを登録します。
$('#myImage').load(function() {
alert('Image Loaded');
});
イメージはAJAX呼び出しの直後にロードされません。DOMが更新され、リソースがフェッチされます。 –
ああ、私は参照してください。私はあなたを軌道に乗せるために少し答えを更新しました。 – aleemb
私はこの機能を使用して、イメージカウントを読み込んだイメージカウントと一致させようとします。ありがとうございます... –
AJAXリクエストがHTMLを返し、その後、ブラウザがフェッチ行くので、私は、AJAXリクエストが完了したときに知っておく必要はありません。イム年齢 –
私は間違っている可能性がありますが、イメージの高さと幅がわかっている場合(おそらく、サーバーによって返されたhtml/JSONで返される可能性があります)、コールバック関数でwhileループを実行して、 "#img")。attr( "height")などは、予想される高さに一致します。それは、画像が完全にロードされたことを意味する可能性があります。 –
残念ながら、これは十分な動的ではありません。これはどんなサイズでも入力できるユーザーコンテンツです... –