J'avais besoin d'utiliser setTimeout pour que le redimensionnement fonctionne pour moi.
Je fais un appel ajax pour obtenir une image, j'attends 2 secondes et je règle la colorbox pour cette image.
Pour terminer, je redimensionne la boîte à couleurs en fonction de la taille de l'image.
Sans délai d'attente, cela n'a pas fonctionné pour moi car l'image n'a pas été chargée complètement et j'ai obtenu largeur=0, hauteur=0 comme la taille de l'image.
$.get('/component/picture/getPicture.do?pictureId=' + id,
function(data) { //callback function
$('#pictureColorbox').html(data); //set picture inside div on this page
setTimeout(function(){ // set timeout 2 sec
//create colorbox for inline content "#pictureColorbox" and call showPicture on complete
$.colorbox({href:"#pictureColorbox", inline:true, title:'', initialWidth:900, initialHeight:600, scrolling:false, onComplete: function(){showPicture(id);}});
}, 2000);
});
function showPicture(id) {
var x = $('#' + id + " #picture").width();
var y = $('#' + id + " #picture").height();
$.colorbox.resize({innerWidth:x, innerHeight:y});
}