私は(インターネット上の他のコメントに基づいて)起こってはならないと私が信じている何かを経験しています。
基本的に、初めてmasonry()を呼び出すときは、レイアウトは問題ありません。
しかし、新しいhtmlコンテンツ(石積みコンテナ用)を再送信してから、masonry()を使用して再度初期化すると、レイアウトが壊れます(グリッドレイアウトだけですが、アイテム間のすべてのスペースが埋められません)。
IE8では、実際にデバッガーを介してjquery.masonryエラーが発生します。
- 私は根本的に間違ったことをしていますか?
これを行うためのより良い方法はありますか?
var $container = $('#container'); // emit photos. $container.html(content.join('')); // initiate masonry. $container.imagesLoaded(function() { $container.masonry({ // <<------------ this is where is crashed on subsequent attempts. itemSelector: '.item', isAnimated: true, isFitWidth: true }); });
* アップデート *
これで、後続の組積造の初期化を機能させることができます(組積造のレイアウトが機能しています)。これを行うには、新しいhtmlコンテンツを石積みコンテナに出力する前に.masonry('destroy')を呼び出すだけです。他の誰もこれを行っていないように見えるので、なぜこれが機能するのかわかりません。