我正在尝试打开两个fancybox窗口。当第一个窗口关闭时 - " afterClose"函数触发下一个。
问题是," afterClose" SECOND弹出窗口甚至在打开之前被调用。因此,正在立即调用SECOND弹出窗口的closeCallback函数,并且页面会发生变化。 (它应该做什么,等到用户按下“确定”按钮后 - 然后再更改页面。)
我尝试使用超时时间长达5秒,但它仍无效。
有人可以帮忙吗?...
谢谢!
要明确:
我想要发生的是: 第一个弹出窗口打开。用户按下“确定”。第一个弹出窗口关闭第二个弹出窗口打开。用户按“确定”。第二个弹出窗口关闭。页面更改为主页。
我现在得到的是:
首先打开弹出窗口。用户按下“确定”。第一个弹出窗口关闭第二个弹出窗口打开一秒钟,然后立即关闭,页面变为主页。
function openNotificationPopup(message, callback, closeCallback) {
$('.fancybox-outer').append('<button class="popupBtn">OK</button>');
$.fancybox.open({
content: message,
afterClose: function() {
if (closeCallback !== undefined) {
closeCallback();
} else if (callback !== undefined) {
callback();
}
}
});
$(document).on('click', '.popupBtn', function() {
if (callback !== undefined) {
callback();
}
$.fancybox.close();
});
}
function openSecondPopup(){
setTimeout(openNotificationPopup(msg2, gotoGame, goHome),5000);
}
openNotificationPopup(msg1, openSecondPopup, goHome);