クリックすると検索結果ページに新しいコンテナが追加されます。各コンテナは、ロードするアイテムの数に応じて反復するクラス(例:.results-1 .results-2.results-3)を取得します。Shuffle.jsで最後に追加されたdivのみを対象にします
「もっと負荷をかける」をクリックすると、新しく追加されたアイテムだけでなく、すべての結果が画面に点滅するという問題があります。これは、私のコードが追加されたものだけでなく、石積みグリッド内のすべてのアイテムを検出しているためです。
この行は問題ですが、私は思う:それぞれの新しいコンテナはその反復処理するクラスを取得するときに
$('.gallery-photo [class of only most recent append goes here?]').each(function() {
は、どのように私は、最近追加項目をターゲットにすることができますか?
アイデアをいただければ幸いです!ここにはPHPなしのfiddleの例があります。
$(function() {
$(".gallery-photo").slice(0, 4).show();
$("#loadMore").on('click', function(e) {
e.preventDefault();
$(".gallery-photo:hidden").slice(0, 4).fadeIn();
$('.gallery-photo').each(function() {
var $newRow = $(this);
$('.masonry-gallery').append($newRow);
$('.masonry-gallery').shuffle('appended', $newRow);
});
});
});
$(document).ready(function() {
var $grid = $('.masonry-gallery');
$grid.shuffle({
itemSelector: '.gallery-photo' // the selector for the items in the grid
});
});
P.S.この石造格子はshufflejsを利用しています。同様の会話hereは、新しい項目をグリッドに追加するために同じコードを使用します。
ありがとうございます。はい、私の実際のサイト(ライブではありません)では、別のページからPHPのコンテンツを読み込む必要があるため、追加があります。新しい結果がいっぱいになる反復(.results-1 .results-2. .results-3)コンテナが追加されます。しかし、あなたの答えは正しい、私はそれを模倣するために使用しているコードを与えられます。 – BlueHelmet
@BlueHelmet - 他のコンテナ要素から要素を動的に追加する別の例を追加しました。それはあなたが探しているものですか? https://jsfiddle.net/jr5j7b1b/ –
あなたは '.children()'セレクタを追加することによって私に考えさせてくれます。私がしなければならないことは、問題の行を '$( 'masonry-gallery:last-child .gallery-photo')に置き換えることだけです。each(function(){'これは実際のサイトで動作しているようです!私が与えた例ではすべてがうまく働いているので、私はあなたの答えを正しいとマークしています。 – BlueHelmet