0

動的に読み込まれた画像ギャラリーがあります。各画像には数値のデータ ID があり、昇順で並べ替えたいと考えています。次に、たくさんあるので、n番目の画像ごとに「トップに戻る」ボタンを挿入したいと思います。次のコードは、デスクトップの FF、Chrome、および Safari で機能します。

$(function() {
    var Arr = $('.card').get();
    var Arr = Arr.sort(function(a,b) {
    var aLoc = +$('.ad',a).data('id'),
     bLoc = +$('.ad',b).data('id')
     return aLoc < bLoc? -1:aLoc > bLoc? 1 :0
     })
    $('#class').append(Arr);  
    $('<div class = "top">TOP</div>').insertAfter('#class div:nth-child(4n)');
});

ここでフィドル

ときどき、私が知る限りでは予測できませんが、iOS でも動作しますが、通常は失敗します。insertAfter() の周りに setTimeout() 関数をラップしようとしましたが、違いはありません。

関連性があるかどうかはわかりませんが、配列がソートされてメイン div に追加されると、画像は遅延ロードされます。

どこが間違っていたのか、手がかりがあれば本当に感謝しています。

ありがとう

編集:これは遅延ロード関数です:

$("img.lazy").lazyload({
        threshold : 200
    });

lazyload プラグインを使用します。作業コードでは、遅延ロード関数が直後に表示されます$('#class').append(Arr);

4

1 に答える 1

0

これはiOS8の問題かもしれないと思いますが、に変更:nth-child(n)するnth-of-type(n)と問題が解決したようです。たぶん、iOS をもっと理解している人なら、何が起こっているのか説明できるかもしれません。

ここを参照してください:SO

于 2014-11-21T00:45:41.907 に答える