確かに、ロードされた後に挿入するようにアイソトープに指示する必要があります。
例えば
$container.load('../pages/2.html .element', function () {
newEls = $(this);
$container.isotope('insert', $(newEls));
});
それ以外の場合は、現在のコンテンツ (または空の div) をロードする前に挿入しています。
ロード$container.isotope('insert', $(newEls));
が開始される前に実行されます (ロードは非同期であるため、コールバック/関数内にある場合にのみ、ロードされたデータに対して何かを実行することを信頼できます)。
これに加えて、「#container」の内容全体をリロードしているため、以前の子が単純に消去されます。たとえば、ダミー要素にロードしてからコンテナに追加するなどして、コンテンツを追加する必要があります。
おそらく次のようなものです(テストされていません):
var $container = $('#container');
$('#insert a').click(function () {
var $newEls;
$container.append('<div id="#loadme"></div>');
var $loadme = $('#loadme');
$('#loadme').load('../pages/2.html .element', function () {
$newEls = $loadme.children();
$loadme.children().unwrap();
$container.isotope('insert', $newEls);
});
return false;
});
通常load
、この状況では使用しませんが、AJAXget
を呼び出して、返された要素を追加します。はるかに簡単です。