这是我的js代码
jQuery('.fancybox').fancybox({
beforeLoad: function(current, previous) {
document.getElementById("petition-form").reset();
jQuery('#petition-form').show();
jQuery('.petition-message').html("");
jQuery('.petition-message').hide();
},
afterClose: function() {
jQuery.fancybox.open('#cancelform');
}
}
);
关闭第一个弹出窗口时打开第二个弹出窗口,但第二个弹出窗口也会关闭。我正在使用fancybox 2+。我也得到一个js错误TypeError:this.overlay为null。
答案 0 :(得分:2)
升级到最新版本后,我遇到了同样的问题。快速修复但不是解决方案是在'afterclose'内添加一个短暂的延迟。这似乎可以及时释放叠加层。
'afterClose':function () {
setTimeout(func, 50);
function func() {
$.fancybox();
}
},
答案 1 :(得分:0)
尝试改变:
...
afterClose: function() {
jQuery.fancybox.open('#cancelform');
}
...
到
afterClose: function() {
jQuery('#cancelForm').fancybox().trigger('click');
}
演示:: jsFiddle
更新了代码::
$(document).ready(function () {
$(".fancybox").fancybox({
helpers: {
overlay: null
},
'afterClose': function() {
$("#cancelForm").fancybox().trigger("click");
}
});
});
更新了Fiddle