2012-06-15 47 views
2

我正在使用Fancybox 2.0.6和jQuery 1.7.2。Fancybox 2.0.6 - AfterClose在fancybox打開之前觸發

我有一個asp.net網頁有兩個更新面板,一個在左邊,一個在右邊。在左邊有一個帶問卷結構的Telerik RadTreeList控件,選擇一個問題會更新與該問題相關的右側面板。

還有一個按鈕(稱爲ActionButton,在更新面板之外)觸發服務器端事件以生成問題答案的標識。 然後,事件用答案ID更新隱藏鏈接,並通過將隱藏文字設置爲可見來觸發fancybox。

<a href="action.aspx" id="hidden_link" class="actionbutton" style="visibility: hidden;" runat="server"></a> 
<asp:Button ID="btnAction" runat="server" meta:resourcekey="btnOpenAction" CssClass="formbuttons" OnClick="btnAction_Click" /> 
<asp:Literal runat="server" Visible="false" ID="Literal1" Text="<script type='text/javascript' language='javascript'>jQuery(document).ready(function() { $('#MainContent_hidden_link').trigger('click'); });</script>" /> 

fancybox是一個iFrame,其中包含另一個網頁,可以將更多詳細信息保存到數據庫。 到目前爲止,這麼好。一切都按預期工作。但是,我現在想要做的是更新左側更新面板以顯示已添加的細節。

這裏的代碼的fancybox:

 $("a.actionbutton").fancybox({ 
      'type': 'iframe', 
      'openEffect': 'elastic', 
      'closeEffect': 'elastic', 
      'openSpeed': 600, 
      'closeSpeed': 200, 
      'padding': 10, 
      'width': 800, 
      'height': 600, 
      afterClose: function() { 
       $('#ctl00$MainContent$btnHiddenAction').trigger('click'); 
       alert('Ha!'); 
      } 
     }); 

我要瘋了這裏我不能讓afterClose回調後閉式防火。我得到我的「哈!」當我點擊ActionButton後立即發出警報,並在點擊確定後彈出fancybox。我試過使用beforeClose,但它根本不會觸發。

當我的代碼粘貼到jsFiddle它的工作原理應該是?!?

我在做什麼錯?幫我長臂襯衫的傢伙一起走之前...

問候, 斯特凡

+0

請提供生成的html代碼,以便我們可以調試與fancybox相關的前端部分? – sg3s

回答

0

我結束了完全無視afterClose事件。

相反,我加入了的fancybox關閉腳本的JavaScript調用,在顯示的fancybox的的action.aspx頁面底部:

</body> 
<script language="javascript" type="text/javascript"> function CloseMe() { parent.$.fancybox.close(); parent.document.getElementById('ctl00$MainContent$btnHiddenAction').click(); }</script> 
</html> 

它的工作對我來說,也許是給別人幫助否則在那裏...... :)