所以我正在使用 jQuery Masonry,我想在每次加载帖子时调用一些 jQuery:
function manipulate(id) {
$(id).each(function(){
if($(this).height()>200){
$('#container2').append(this);
} else{
$('#container').append(this);
};
});
};
所以我想每次加载 Masonry 容器中的下一个项目时调用这个函数。这样,它以正确的方式操纵项目。我怎么做?
更新:砌体的描述
Masonry 是一个 Javascript 插件,就像 CSS 浮动强制完美适应 + 无限滚动。如果没有无限滚动,它会完全隐藏第 1 页上不会出现的所有内容,然后在必要时加载它们。这意味着我的函数不会影响任何隐藏的项目,并且需要在 Masonry 加载下一组项目时重新调用,以便它们出现在正确的位置。这可能意味着在不了解 Masonry 的情况下,您不一定可以解决我的问题,但您仍然可以。最后,Masonry 将项目“附加”到 Masonry 容器,然后“显示”它们。所以我想我需要做的是在将它们附加到 Masonry 容器之后,但在它显示之前将它们附加到正确的容器中。
砌体代码:
$(window).load(function(){
var $wall = $('#container');
$wall.imagesLoaded(function(){
$wall.masonry({
itemSelector: '#entry, #entry_photo',
isAnimated : false
});
});
$wall.infinitescroll({
navSelector : '#page-nav',
nextSelector : '#page-nav a',
itemSelector : '.entry, .entry_photo',
bufferPx : 2000,
debug : false,
errorCallback: function() {
$('#infscr-loading').fadeOut('normal');
}},
function(newElements) {
var $newElems = $(newElements);
$newElems.hide();
$newElems.imagesLoaded(function(){
$wall.masonry( 'appended', $newElems,{isAnimated: false}, function(){$newElems.fadeIn('slow');} );
});
}); $('.entry').show(500);
});
我曾尝试将该功能放在 Masonry 块中,甚至作为该$newElems
功能来查看它是否会在加载更多图像时起作用,但它没有,实际上在某种程度上破坏了它。
如何让它运行 Masonry 通过我的 jQuery 加载的所有新元素,以便它们被附加到正确的容器中?