在 onClosed 函数中,我想确定单击以关闭花式框的元素的 ID 是什么。我需要根据盒子的关闭方式提供不同的 onClosed 行为。
假设我的幻想框中有一个按钮,用户可以单击该按钮关闭该框并转到注册页面:
<button id="user-register" onclick="parent.jQuery.fancybox.close();parent.location.href='/user/register';"><h3>Sign Up <strong>Now!</strong></h3></button>
在我打开盒子的 fancybox 调用中,我有一个 onClose 函数,它通常会重新加载父对象:
'onClosed': function() {
/*mytest = $('#fancybox-content iframe').contents().find('#user-register');
console.log(mytest);*/
if ($('body').hasClass('not-logged-in')) {
parent.location.reload(true);
}
}
重新加载父级的原因是因为在某些情况下用户会在fancybox中登录,我希望父级反映用户已经登录。但是在用户单击注册按钮的情况下,我不希望父重新加载,因为这样用户不会被发送到 /user/register。您可以看到,在我的 onClosed 函数中,我试图在注释掉的代码中找到一种方法来访问 #user-registered 按钮。我希望它的长度在 onClosed 函数中不会为零,因为它是单击以关闭框的元素,但实际上在这种情况下它的长度始终为零,大概是因为当 onClosed 函数时框已经关闭运行。我还尝试检查 onClosed 函数中可用的 arguments 变量,但它指的是打开盒子的元素,
我还尝试将一个参数传递给 close() 函数,以查看它是否会在 onClosed 函数中以某种方式可用——例如,close('user-register')。不过,那个 arg 似乎不可用。
任何想法如何知道一个盒子是如何从 onClosed 函数中关闭的?
谢谢