我在页面上使用Magnific Popup和Shuffle插件。我会在用户到达页面底部时立即加载新项目。我想要做的是在加载后将我的新项目绑定到Magnific Popup。 我试着按照这个答案Dynamically add items to Magnific Popup gallery但这对我不起作用。
我在js代码下面这样做。 首先,一旦页面加载,我使用此代码来设置MP
// gallery mode
$('.gallery-item').magnificPopup({
gallery: {
enabled: true
},
mainClass: 'mfp-fade',
fixedContentPos: false,
type: 'image'
});
然后,一旦用户到达页面底部,请求JSON文件
$.getJSON( "list-dir.php")
.done(function( data ) {
var diff = Object.keys(data).length - $(".item").length;
var NUM_TO_LOAD = diff > 10 ? 10 : diff;
if(Object.keys(data).length > $(".item").length){
for(var i = 0 ; i<= 10; i++) {
var el = data[$(".item").length];
if (el === undefined) { break; }
var name = el.substring(0,el.indexOf("_") );
var $item = $('<div class="item shuffle-item filtered" data-groups="photo" data-groups="photo"><a href="img/dresses/'+ el + '" class="gallery-item item-link" style="margin: 10px;"><div class="item-img" style="background-image: url(\'img\/dresses\/' + el + '\' )"></div><div class="item-overlay"><h5>'+ name +'</h5></div></a></div>');
//Shuffle update
$('.portfolio').append($item);
$('.portfolio').shuffle('appended', $item);
// get instance (after popup was opened)
var mfp = $.magnificPopup.instance;
// modify the items array (push/remove/edit)
mfp.gallery.push({
src: $item
});
mfp.updateItemHTML();
}
}
});