Javascript 嵌套放大弹出窗口
我想从一个放大弹出项传递到另一个,执行一些操作,然后返回到第一个。 为了实现这一点,我使用$.magnificpoup.instance.close覆盖close方法(在打开第二个元素之前),在其中调用$.magnificpoup.proto.open()方法。这似乎有效,但我无法将其重写回初始行为,并且第一个弹出窗口的关闭按钮仍会触发修改后的行为。下面是一个对应的JSFIDLE:Javascript 嵌套放大弹出窗口,javascript,jquery,overriding,magnific-popup,Javascript,Jquery,Overriding,Magnific Popup,我想从一个放大弹出项传递到另一个,执行一些操作,然后返回到第一个。 为了实现这一点,我使用$.magnificpoup.instance.close覆盖close方法(在打开第二个元素之前),在其中调用$.magnificpoup.proto.open()方法。这似乎有效,但我无法将其重写回初始行为,并且第一个弹出窗口的关闭按钮仍会触发修改后的行为。下面是一个对应的JSFIDLE: 问题是我必须关闭放大弹出窗口的第一个实例。 这篇文章帮助我找到了一个可行的解决方案: 我的工作方案如下: 你的小
问题是我必须关闭放大弹出窗口的第一个实例。 这篇文章帮助我找到了一个可行的解决方案: 我的工作方案如下:
你的小提琴语法有问题,请纠正它。
$('.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');
}
}
}
});
$('.first-popup-link').magnificPopup({
type: 'inline',
closeBtnInside: true,
closeOnBgClick: false,
closeOnContentClick: false,
callbacks: {
beforeOpen: function() {
$.magnificPopup.instance.close = function() {
$.magnificPopup.proto.close.call(this);
};
// $.magnificPopup.proto.close.call(this);
console.log('before open has been initiated');
}
}
});
$('.second-popup-link').click(function() {
$.magnificPopup.proto.close.call(this);
});
$('.second-popup-link').magnificPopup({
type: 'inline',
closeBtnInside: true,
closeOnBgClick: false,
closeOnContentClick: false,
callbacks: {
beforeOpen: function() {
$.magnificPopup.instance.close = function() {
$.magnificPopup.proto.close.call(this);
$('.first-popup-link').trigger('click');
};
// $.magnificPopup.proto.close.call(this);
console.log('before open has been initiated');
},
close: function() {
console.log('Popup 2 close has been initiated');
}
}
});