ajax 呼び出しで jQuery Masonry プラグインを使用すると問題が発生します。
サーバーからかなり標準的なhtmlコンテンツを取得するフィルター関数があります(div、画像なし):
var searchResults = $('div#results');
function filter() {
var text = 'text';
var orderby = 'order';
var source = 'source';
var media = 'media';
var format = 'format';
var tags = 'tags';
var fetchUrl = '/search/results/ ' + text + '/' + orderby + '/' + source + '/' + media + '/' + format + '/' + tags;
$.ajax({
type: "POST",
url: fetchUrl,
cache: false,
data: "after=000000",
success: function(data){
searchResults.html(data);
$('#results').masonry({
columnWidth: 360,
itemSelector: '.related'
});
}
});
}
これは、ページの読み込み時に次のように呼び出されます。
if (searchResults.length > 0) {
filter();
}
これはすべて期待どおりに機能しています。ただし、クリックして呼び出してみるとfilter()
、コンテンツは正常に取得されますが、石積みはフォーマットされていません。
$('nav#view-types a#grid, nav#view-types a#list').click(function() {
filter();
return false;
});
私は Ajax の成功関数で masonry を呼び出しており、最初の実行で機能しているため、問題が何であるかは実際にはわかりません...誰かアイデアがありましたか?
ありがとう!
ジェームズ