Este el típico problema en el cual utilizaba un setTimeout(). Estaba obligado a esperar que se ejecutara la linea superior para poder hacer uso del nodo DOM (en este caso “lightbox_content_user”).
$(“#wrap_all”).prepend(<?php echo json_encode($lightbox) ?\>));
setTimeout(function(){
$(“.lightbox_content_user”).css(‘width’, container_width - 80);
}, 500);
Ahora estoy comenzando a utilizar un objeto jQuery llamado Deferred. Básicamente hace lo mismo, pero de forma mas limpia. Y así evitamos la famosa Callback Pyramid of Doom.
var dfd = $.Deferred();
dfd.done($(“#wrap_all”).prepend(<?php echo json_encode($lightbox) ?\>);
dfd.resolve($(“.lightbox_content_user”).css(‘width’, container_width - 80));