フォトギャラリーの場合、表示したい画像の src の配列を返すファイルを (ajax 経由で) ロードします。これらは、ajax 呼び出しが返す正確な順序で表示する必要があります。
内部に関数を含む for ループを使用してい.load()
ますが、その方法では同期されません。関数内で i の値を出力すると、0、1、3、4.load()
などではなく、0、3、2、4 などになります。
私のコードの簡略版:
$.get('photostack.php', {album_name:album_name} , function(data) {
var items_count = data.length;
for(var i = 0; i < items_count; ++i){
var item_source = data[i];
var cnt = 0;
$('<img />').load(function(){
var $image = $(this);
++cnt;
console.log(i);
$ps_container.append($image);
}).attr('src',item_source).attr('class',i);
}
},'json');
console.log(i)
間違った順序を与えるようになりました。完全に上昇している必要があります。
私は多くのことを試しました。cnt
/などの変数としてオブジェクトを使用して、すべてのロードを100ミリ秒遅らせますi
が、どれも機能しませんでした。