Поддержание порядка элементов кладки с изображениями

У меня возникли проблемы с сохранением порядка элементов каменной кладки, так как у всех есть изображения, которые загружаются в разное время. Все мои элементы обрабатываются упорядоченным образом, и для каждого я запускаю эту строку, чтобы добавить их:

$('#grid').append($div).imagesLoaded(function() {
    $div.show();
    $('#grid').masonry('appended', $div, true);
    $('#grid').data('masonry').layout();
});

Проблема в том, что у каждого div есть изображение, которое загружается в течение случайного промежутка времени, поэтому div с первым загруженным изображением идет впереди (вне обычного порядка).

Я знаю, что в jQuery есть несколько функций очередей, но я не знаю, как их здесь применить.


person Vladislav Dimitrov    schedule 17.01.2018    source источник
comment
На этот вопрос уже дан ответ здесь.   -  person Alfalfa    schedule 17.01.2018


Ответы (1)


Итак, я закончил тем, что использовал очереди. Я изменил индивидуальную функцию на

$('#grid').queue('items', function( next ) {
    $('#grid').imagesLoaded(function() {
        $div.show();
        $('#grid').masonry('appended', $div, true);
        $('#grid').data('masonry').layout();
        next();
    });
});

После добавления каждого набора элементов я просто вызываю

$('#grid').dequeue('items');

и это, похоже, решает проблему сортировки на данный момент.

person Vladislav Dimitrov    schedule 17.01.2018