我在使用带有 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 并且它正在第一次运行时,我真的看不出问题可能是什么......有人有什么想法吗?
谢谢!
詹姆士