2012-05-25 51 views
0

从onClosed函数中,我想确定单击的元素的ID以关闭fancybox。我需要根据盒子的关闭方式提供不同的onClosed行为。在fancybox onClosed函数中,如何访问被点击的元素以关闭fancybox

假设我有我的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里面,我希望家长反映用户已登录,但在案件用户点击注册按钮,我做n不希望父母重新加载,因为那么用户不会被发送到/ user/register。你可以看到,在我的onClosed函数中,我试图在注释掉的代码中找到一种方式来访问#用户注册的按钮。我希望它的长度在onClosed函数中不会为零,当它被点击来关闭方框时,但实际上它的长度在此上下文中始终为零,大概是因为当onClosed函数已经关闭时运行。我也尝试检查onClosed函数中可用的参数变量,但它指向打开框的元素,而不是关闭它的元素。

我也尝试传递一个参数给close()函数,看看它是否可以在onClosed函数中使用 - 例如close('user-register')。虽然这个参数似乎不可用。

任何想法如何知道如何从onClosed函数关闭框?

谢谢

回答

0

声明父页面,你可以在页面的fancybox使用parent.varname访问的变量(全球范围)。在fancybox关闭之前,设置该按钮的值onclick或任何被触发的事件。然后在父页面中,您可以在fancybox的OnClosed事件中检查此变量的值。希望这可以帮助。