gpt4 book ai didi

magnific-popup - 从另一个打开一个宏伟的弹出窗口时回调不触发

转载 作者:行者123 更新时间:2023-12-05 01:05:10 24 4
gpt4 key购买 nike

我目前有一个很棒的弹出窗口,在那个弹出窗口中我有一个链接可以打开另一个很棒的弹出窗口。类似的东西:

 $('.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);
};

关于magnific-popup - 从另一个打开一个宏伟的弹出窗口时回调不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21847891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com