2013-05-04 53 views
1

我得到了一个显示25个图像的网站。我创建了一个名为“加载更多”的按钮。这些按钮通过Ajax从php脚本中拉出25个图像。这部分实际上工作正常。问题是,我使用jquery masonry来对齐图像。无法重新加载jQuery砌体

现在,它在加载页面时调用了Masonry函数。

function Masonry() { 
    var $container = $('#fit'); 
    $container.imagesLoaded(function() { 
     $container.masonry({ 
      itemSelector: '.masonryImage' 
     }); 
    }); 
} 

但是,当我想事后调用Masonry()函数时,它不起作用。

如果我没有在加载时调用Masonry(),它在我的ajax函数中工作正常。

任何想法为什么发生这种情况?

回答

0

你需要调用appended新项目添加到砌筑容器:

$('#fit').masonry('appended', newitems); 

FYI:为使用替代“加载更多”按钮,看看利用无限滚动:http://masonry.desandro.com/demos/infinite-scroll.html

+0

嗨迈克,我其实只是去尝试 我使用了一个名为 变量$箱= $(xmlhttp.responseText)功能; $('#fit')。append($ boxes).masonry('added',$ boxes).masonry('reload').masonry('reloadItems'); 它附加了图像,但并不像预期的那样恐惧。 只给你一个想法是什么AJAX回报:

Jazerix 2013-05-04 13:23:14

+0

这是网址:http://farming-pictures.com/temp/imagestream.php ^^ – Jazerix 2013-05-04 13:26:47

+0

你是什么意思“没有达到预期”?看起来它现在正在工作,除了您需要重置“加载更多”按钮... – mike 2013-05-04 14:21:17

1

重新加载后,再次调用bulk砌体()以解决此问题。

$('#fit').append(newitems).masonry('reloadItems').masonry();