当我将AJAX返回的数据附加到我的砌体容器中时,它不会拾取已经应用于先前加载的项目的网格布局。我使用包装在文档就绪函数中的以下代码:
// Masonry
var $container = $('#masonry-container');
$container.imagesLoaded(function () {
$container.masonry({
itemSelector: '.grid_4',
isAnimated: true
});
});
// AJAX Fotolia Image Search
var morebtn = $('.get-more-results');
var sOffset = 50;
morebtn.on('click', function () {
var $cst = $('.crrsrch').text();
$.ajax({
type: "POST",
url: "...",
data: {};
success: function (data) {
$container.imagesLoaded(function () {
$container.append(data);
$container.masonry('appended', data);
});
}
});
return false;
});
AJAX调用中的项目被附加了,但是它们没有砌体布局-它们浮在列表的顶部,而不是附加显示。数据被附加在标记中。
使用砌体附加方法也会引发错误。我在控制台中得到以下内容:
Uncaught TypeError: Property 'webkitMatchesSelector' of object is not a function
i
r._filterFindItemElements
r._getItems
r.addItems
r.appended
t.fn.(anonymous function)
(anonymous function)
doneLoading
除最后两个((匿名函数)和doneLoading)外,其他每个都与砌石js文件相关。
通过使用石工现场的方法文档,这应该可以工作。显然我在这里错过了一些东西。
可能会帮助您的其他信息-
-AJAX调用是对Fotolia API的
-该网站基于Wordpress 3.5.2构建
-javascript文件已入队
如果有人有任何想法或可以提供帮助,将不胜感激。
提前谢谢了。
最佳答案
尝试在函数(成功)中声明砌体itemselector,就像我遇到的类似情况一样,一旦加载内容,就有助于应用$ container.masonry('reload');。
例如:
success: function (data) {
$container.imagesLoaded(function () {
$container.append(data);
$container.masonry('appended', data);
$container.masonry({
itemSelector: '.grid_4',
});
$container.masonry('reload');
});
}
关于jquery - jQuery Masonry-附加后,AJAX返回的数据未获取砖石网格布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17698826/