2011-12-23 13 views
-3

すべての画像のダウンロードが完了したときにユーザーに通知するためのコードがありますが、コードの流れはあまり明確ではありません。誰でも詳細に説明できますか?jqueryコードの説明が必要

何1()関数と、それが何をするのか...負荷()関数は

$("#loadingDiv").show(); 
var nImages = $("#all-images").length; 
var loadCounter = 0; 

$("#all-images img").one("load", function() { 
loadCounter++; 
if(nImages == loadCounter) { 
    $(this).parent().show(); 
    $("#loadingDiv").hide(); 
} 
}).each(function() { 

// attempt to defeat cases where load event does not fire 
// on cached images 
if(this.complete) $(this).trigger("load"); 
}); 

おかげ

+1

[jQueryドキュメント](http://api.jquery.com/one/)でそれを見てみませんか? –

答えて

0

.oneをコードし、ここで

をされて呼び出しているか(イベントハンドラ)与えられたイベントで実行されるコードのブロックを最大で1回設定します。つまり、 $("#someid").one(click, function(){blabla; more_blabla;});のようなものがあれば、それは最初にsomeid要素をクリックしたときにだけ発生します。

Reference

EDIT:この質問は、コードの説明のようなものを持っています。 jQuery loading images with complete callback

基本的には、ページに1つ以上のイメージオブジェクトを読み込んでいます。 $("#all-images img").one ...は、イベントハンドラ(イベントが発生したときに実行されるコードブロック)を、ロードされているすべてのイメージにバインドします。コードは、それぞれ1つずつ実行されます。

その後、ちょうどすべての"#all-images img"選択された要素と..ポインタthisオブジェクトがロードされるのにちょうどポイント(あわや)(画像)上で動作し、負荷がある場合、属性を完全に伝える.eachがあります完全かどうか。したがって、最後のコードは、イベントハンドラをバインドするためにすでにロードされているイメージを探します(最初のバインディングはサーバからロードされたイメージを考慮に入れているためです)。

希望私は十分だった

+0

私はコードを理解する必要があります。可能であれば説明してください。私はちょうど(this.complete)かどうかわからない。この行これはどの要素を参照しています。何が完了?それは何が完了を検出しようとする? –

+0

私は、このコードが行ごとにどのように実行されるかを理解する必要があります。 –