我正在制作一个像 pinterest 这样的音乐分享网站。
我使用 Masonry 来制作网格布局和 Infinite-Scroll 加载下一页。当我单击音乐专辑时,它会弹出一个灯箱(使用 fancybox)并使用 ajax 加载一些信息。
在第一页上,一切正常。但是当我点击一个音乐专辑,关闭它并向下滚动页面后,新加载的部分有这个问题:$newElems.imagesLoaded is not a function
我不知道如何解决这个问题。
任何帮助将不胜感激!
这是我的代码:
var $container = $('#container');
// masonry init
$container.imagesLoaded(function(){
$container.masonry({
itemSelector: '.item',
columnWidth: 100
});
});
// ancybox fancybox
function init(){
$("a.inline").fancybox({
'transitionIn' : 'fade',
'transitionOut' : 'none',
'speedOut' : 0,
'hideOnOverlayClick': true,
'hideOnContentClick': false,
'overlayColor' : '#FFF',
'overlayOpacity' : 0.5,
'showCloseButton' : true,
'showNavArrows' : false
});
}
init();
$container.infinitescroll({
// infinitescroll init
navSelector : '#page-nav',
nextSelector : '#page-nav a',
itemSelector : '.item',
loading: {
finishedMsg: 'No more pages to load.',
img: 'http://i.imgur.com/6RMhx.gif'
}
},
// infinitescroll callback
function( newElements ) {
var $newElems = $( newElements ).css({ opacity: 0 });
$newElems.imagesLoaded(function(){
$newElems.animate({ opacity: 1 });
$container.masonry( 'appended', $newElems, {
isAnimated: false
}, function () {
// for new loaded part
init();
});
});
}
);