В твоем случае действительно проще сделать
elem.innetHTML = 'картинки';
var imgs = elem.querySelectorAll('img');
var i = 0;
[].each.call(imgs, function(img){
img.onload = function(){ if( ++i === imgs.length ) allImgLoad.call(elem) }
});
function allImgLoad(){ /*ура*/ }
ну а я пока напишу костыль