Magnific popup 从另一个窗口打开放大弹出窗口时不触发回调
我目前有一个放大弹出窗口,在这个弹出窗口中我有一个链接,可以打开另一个放大弹出窗口。大致如下:Magnific popup 从另一个窗口打开放大弹出窗口时不触发回调,magnific-popup,Magnific Popup,我目前有一个放大弹出窗口,在这个弹出窗口中我有一个链接,可以打开另一个放大弹出窗口。大致如下: $('.logbook-entry-details').magnificPopup({ type: 'ajax', closeBtnInside:true, closeOnBgClick:false, closeOnContentClick:false, callbacks: { beforeOpen: function () {
$('.logbook-entry-details').magnificPopup({
type: 'ajax',
closeBtnInside:true,
closeOnBgClick:false,
closeOnContentClick:false,
callbacks: {
beforeOpen: function () {
$.magnificPopup.close();
},
open: function() {
console.log('Popup open has been initiated');
},
beforeClose: function() {
console.log('Popup before close has been initiated');
},
close: function() {
console.log('Popup close has been initiated');
},
afterClose :function() {
console.log('Popup after close has been initiated');
}
}
});
阅读后,我发现在关闭原始弹出窗口之前,第二个弹出窗口上的回调不会被注册,因为打开新弹出窗口只会替换内容,实际上不会重新创建新实例
我试图弄清楚,在调用代码打开新的弹出窗口之前,如何让弹出窗口中的链接关闭当前弹出窗口,以便它可以注册我的回调
顺便说一句,我尝试这样做的原因是我想在关闭新的弹出窗口后重新打开原来的弹出窗口。如果您碰巧有更好的解决方案,请告诉我。因此,为了防止有人需要此答案,我必须在新弹出窗口中添加以下代码
// a button that closes the popup
$('#cancel-logbook-entry-btn').click(function(){
$.magnificPopup.proto.close.call(this);
});
$.magnificPopup.instance.close = function () {
//code to show the original popup
};
然后在原来的弹出窗口中,我必须添加,否则它将永远不会关闭弹出窗口
$.magnificPopup.instance.close = function () {
// "proto" variable holds MagnificPopup class prototype
// The above change that we did to instance is not applied to the prototype,
// which allows us to call parent method:
$.magnificPopup.proto.close.call(this);
};