Я обновляю содержание отделения с некоторым HTML через вызов ajax и меня, что выполнить функцию после того, как все изображения от ajax ответа загружаются.
См. код ниже, #gridWrapper
прибывает из ответа Ajax, и он имеет много изображений миниатюр.
success: function(Data){
MyGrid.prepGridLayout(Data.html);
$('#gridWrapper .thumbnail img').load(function(index) {
MyGrid.updateCellWidth(this);
});
MyGrid.adjustGridWidth();
MyGrid.animateGridLayout();
}
Я должен выполниться MyGrid.animateGridLayout();
только после того, как все изображения загружаются. В настоящее время MyGrid.animateGridLayout();
выполняется прежде MyGrid.updateCellWidth(this);
выполняется
Как удостовериться MyGrid.animateGridLayout();
выполнения только после всех изображений загружаются?
Вы могли бы заставить обработчики "load" отслеживать, сколько они сделали.
success: function(Data){
MyGrid.prepGridLayout(Data.html);
var thumbs = $('#gridWrapper .thumbnail img'), tc = 0;
thumbs.load(function(index) {
MyGrid.updateCellWidth(this);
if (++tc === thumbs.length) {
MyGrid.adjustGridWidth();
MyGrid.animateGridLayout();
}
});
}