2012-05-25 83 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事件中檢查此變量的值。希望這可以幫助。