Una domanda. Nel tuo codice appaiono queste istruzioni:
$('#dialog').append(elem);
var elem = document.createElement("img");
Perché tu fai
append() della variabile
elem, che presumibilmente è
undefined, quando vai ad assegnarle un valore solo nella riga successiva?
A livello di logica, prima dovrai creare l'elemento, e
dopo lo andrai a inserire nella dialog, quindi le istruzioni credo che vadano innanzitutto
invertite.
Rivedi e correggi il codice, magari fai anche debug, e poi dicci se il problema persiste e cosa hai individuato.
Ciao!