Menjaga ketertiban item pasangan bata dengan gambar

Saya kesulitan menjaga urutan item batu saya, karena semuanya memiliki gambar yang dimuat pada waktu berbeda. Semua item saya diproses secara berurutan dan untuk masing-masing item saya menjalankan baris ini untuk menambahkannya:

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

Masalahnya adalah setiap div memiliki gambar yang dimuat dalam jangka waktu acak, sehingga div dengan gambar pertama yang dimuat akan berada di depan (di luar urutan biasanya).

Saya tahu jQuery memiliki beberapa fungsi antrian, tapi saya tidak yakin bagaimana cara menerapkannya di sini.


person Vladislav Dimitrov    schedule 17.01.2018    source sumber
comment
Pertanyaan ini sudah dijawab di sini.   -  person Alfalfa    schedule 17.01.2018


Jawaban (1)


Jadi, saya akhirnya menggunakan antrian. Saya telah mengubah fungsi individual menjadi

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

Setelah setiap kumpulan elemen ditambahkan, saya cukup menelepon

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

dan ini sepertinya menyelesaikan masalah penyortiran untuk saat ini.

person Vladislav Dimitrov    schedule 17.01.2018