Не совсем по теме, но если кто столкнется с такой-же проблемой в Битриксе, то там это лечится так:
// инициализируем свою функцию, где инициализируем Magnific popup в нужном нам месте
// (код инициализации Magnific popup оставил свой, лень, у вас он может отличаться)
function popap() {
$('.popup-gallery').magnificPopup({
delegate: 'a',
type: 'image',
tLoading: 'Loading image #%curr%...',
mainClass: 'mfp-img-mobile',
gallery: {
enabled: true,
navigateByImgClick: true,
preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
},
image: {
tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
titleSrc: function (item) {
return item.el.attr('title');
}
}
});
}
//применяем Magnific popup там где нет ajax
popap();
//самое интересное тут!
//применяем Magnific popup там где есть ajax
//данная функция вызовет popap() при включенном аяксе
BX.addCustomEvent('onAjaxSuccess', function() {
popap();
});