Я хочу перейти от одного объекта magnific-popup к другому, выполнить какое-то действие, а затем вернуться к первому. Для этого я переопределяю метод close (перед открытием второго элемента) с помощью $ .magnificPopup.instance.close, в котором я вызываю метод $ .magnificPopup.proto.open(). Кажется, что это работает, но я не могу отменить его обратно к его первоначальному поведению, а кнопка закрытия первого всплывающего окна по-прежнему вызывает измененное поведение. Вот соответствующий jsfiddle:Вложенные Magnific Popup
https://jsfiddle.net/matthieuG/ddkc83ca/12/
$('.first-popup-link').magnificPopup({
closeBtnInside:true,
callbacks: {
open: function() {
/*var magnificPopup = $.magnificPopup.instance;*/
},
open: function() {
$.magnificPopup.instance.close = function() {
console.log('close override is working');
$.magnificPopup.proto.open({
callbacks:{
open: function() {
console.log('open callback');
$.magnificPopup.instance.close = function() {
$.magnificPopup.proto.close.call(this);
console.log('open close callback');
}
}
},
items: {
src: '#first-popup'
},
type: 'inline'
});
}
}
}
});
$('.second-popup-link').magnificPopup({
closeBtnInside:true,
closeOnBgClick: false,
callbacks: {
beforeOpen: function() {
$.magnificPopup.instance.close = function() {
$.magnificPopup.proto.close.call(this);
console.log('2nd close override is not working');
}
}
}
});
ваша скрипка имеет проблемы с синтаксисом, исправить это. – Siddharth