我正在使用高级Ajax页面加载器插件和Masonry。这两种方法都可以,但是一旦通过ajax加载了新内容,Maonry就无法应用。你可以在这里看到http://wxperimental.musicglaze.com 一旦你第一次加载它,你可以看到砖石正在发生(每个帖子是分开的),但在侧边栏中键入“a”搜索并查找它。将通过ajax加载新内容,并且不会应用masonry。
我尝试在高级Ajax页面加载器插件的设置中粘贴我的砌体代码以“重新加载代码”部分,但没有成功。
我的砌体规范。
jQuery( document ).ready( function( jQuery ) {
// Check if container exists
if (jQuery("#content").length > 0) {
var e = function() {
var e = jQuery("#content"),
t = function() {
r();
i();
s()
},
r = function() {
// Some stuff for responsive layout
var e = jQuery(window).width();
if (e <= 1125) n = 1;
else n = 2
},
i = function() {
// On resize apply masonry again
jQuery(window).on("smartresize.MusicGrid", function(e) {
r()
})
},
s = function() {
e.imagesLoaded(function() {
e.masonry({
itemSelector: ".article",
columnWidth: function(e) {
return e / n
},
isAnimated: false
})
})
};
return {
init: t
}
}();
e.init();
}
// This is to apply Masonry for jetpack infinite scroll
jQuery( document.body ).on( \'post-load\', function () {
var jQuerycontainer = jQuery(\'#content\');
jQuerycontainer.masonry( \'reload\' );
});
});
最合适的回答,由SO网友:Amit Kumar Gupta 整理而成
这个问题与wordpress无关,而是与javascript的行为有关。
您需要等待ajax调用完成,然后重新启动。您可以通过在javascript中放入“console.log()”来确认它。