私はすべて、メニューのあるWebサイト(http://euroscala.balkanium.com/)を作成しています。メニュー項目をクリックすると、サムネイルリストが表示されます。表示されるはずのすべての画像をプリロードしてから表示しようとしています。IEを除くすべてのブラウザで正常に動作します(バージョン8があります)。私はここを見て喜んでいる人のためにコードをまとめました:http://jsfiddle.net/THpgM/2/
問題はこのコードにあると思います(フィドルの最初の関数の下部にあります)
img.onload = (function(i){
// code here is executed
return function(){
// code here is not
++totalLoaded;
document.getElementById("li" + i).style.height = this.height + "px";
document.getElementById("li" + i).setAttribute("data-height", this.height);
if(totalLoaded == totalThumbs){
// do some stuff
}
};
})(i);
私はこれを理解しようとして2日ほど過ごしました。誰かがこれで私を助けてくれるなら、それは大いにありがたいです。