FINAL ATTEMPT
As far as I can tell you want to be able to tell when the image loads, and do it multiple times. The problem with the previous attempt, and your own code, is that the "load" handler is only applied AFTER the new image source has been set and executed. Please, try this on for size:
$(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
}
});
[OLD] NEW ATTEMPT
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
});
}
ORIGINAL POST
Idea taken from This Article
$(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.
});
Alternatively,
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
});