在onClosed函数中,我想确定单击以关闭fancybox的元素的ID。我需要根据框的关闭方式提供不同的onClosed行为。
假设我的fancybox中有一个按钮,用户可以点击该按钮关闭该框并转到注册页面:
<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函数中关闭一个框?
谢谢
答案 0 :(得分:0)
在父页面上声明一个变量(具有全局范围),您可以使用parent.varname在fancybox页面中访问该变量。设置此变量的值,单击按钮或在fancybox关闭之前触发的任何事件。然后在父页面中,您可以在fancybox的OnClosed事件中检查此变量的值。希望这会有所帮助。