最後の試み
私が知る限り、画像がいつ読み込まれるかを確認し、それを複数回実行できるようにしたいと考えています。前の試行と独自のコードの問題は、新しいイメージ ソースが設定されて実行された後にのみ「ロード」ハンドラが適用されることです。サイズはこちらをご試着ください:
$(function () {
var images = ['image1.jpg','image2.jpg' /* ... */ ];
var imageObjects = [];
var imagesToLoad = 0;
for (i = 0, z = images.length; i < z; i++) {
imageObjects[i] = new Image();
imagesToLoad++;
$(imageObjects[i])
.load(function () {
if (--imagesToLoad == 0) {
// ALL DONE!
}
// anything in this function will execute after the image loads
var newImg = $('<img />').attr('src',$(this).attr('src'));
$('.profile').append( $(newImg) ); // I assume this is the code you wanted to execute
})
.attr('src',images[i]);
// Notice that the 'attr' function is executed AFTER the load handler is hooked
}
});
[旧] 新しい試み
var images = [ /* you get it by now */ ];
for (i=0,z=images.length;i<z;i++) {
$('<img />')
.attr('src', images[i])
.load(function(){
$('.profile').append( $(this) );
// Your other custom code
});
}
元の投稿
この記事からのアイデア
$(document).ready(function(){
var images = ["image1.jpg","image2.jpg"];
var loader = new Image();
for (i=0,z=images.count;i<z;i++) {
loader.src = images[i];
// insert some code here to do something with the now-loaded image
}
// do something with the now-loaded images.
});
あるいは、
var images = ["image1.jpg","image2.jpg"];
var loader = [];
$(document).ready(function(){
for (i=0,z=images.count;i<z;i++) {
loader[i] = new Image();
loader[i].src = images[i];
// insert some code here to do something with the now-loaded image
}
// do something with the now-loaded images, using the loader array
});