I'm not sure what browsers are affected, but it is easy to check for.
var img = new Image();
img.src = "foo.jpg";
if (img.complete || img.readyState === 4) {
// image is cached
doneCallback();
}
else {
$(img).on('load',doneCallback);
}
UPDATE
If you change the code around, it will consistently fire a load event in all browsers.
var img = new Image();
$(img).load(doneCallback);
img.src = "foo.jpg";
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…