ajax で返されたアイテムを Packery に追加し、現在のアイテムを削除して、新しいアイテムをレイアウトしたいと考えています。
Metafizzy(開発者)のフォークペンを使用してcodepenで作業しています
これはまさに私が欲しい機能です: http://codepen.io/anon/pen/Cnbxu/
ただし、私のコードケースでは、すでに作成されている要素配列を使用しているため、items 配列を作成したり、DOM に追加したりする必要はありません。
これが私が使用しているコードのサンプルです。
$.post( ajax_vars.ajaxurl, { action: 'function', param : param }, function(data){
if( data == '' || data == 'undefined' || data == 'No More Posts' || data == 'No $args array created' ){
data = '';
}
//gather current Packery elements
var elToRemove = pckry.getItemElements()
// append elements to container
container.append($(data));
console.log(elems);
// add and lay out newly appended elements
pckry.addItems($(data));
pckry.remove(elToRemove);
packery.layout();
elems = pckry.getItemElements();
console.log(elems);
}
});
要素があり、 console.log($(data)) が応答を示し、インスペクターを確認すると、コンテナー div 内に返された要素が表示されます。問題は、私が何をしても、Packery に新しいアイテムを「認識」させ、それに応じてレイアウトさせることができないことです。elems は空を返します。addItems()、prepended()、appended() メソッドを無駄に使用しました。
何か助けはありますか?