2013-04-10 99 views
1

我使用此代碼加載fancybox彈出窗口,它隱藏另一個div在父頁面打開時,然後當它關閉我需要它再次顯示div,但它似乎無法找到要顯示的原始div。Fancybox顯示div關閉

<script type="text/javascript"> 
     $(document).ready(function() { 
     $(".fancybox").fancybox(); 
      $(".fancybox").click(function() { 
       $("#divtotoggle").hide(); 
       $.fancybox.open({ 
         'type': 'iframe', 
        padding : 0, 
        afterClose: function() { 
         //$("#divtotoggle",parent.document).show(); 
         $("#divtotoggle").show(); 
        } 
       }); 
      }); 
     }); 
</script> 

我在afterClose功能

得到了TypeError: document.getElementById(...) is null我想這是因爲它的父,但$("#divtotoggle",parent.document).show();也會失敗。

+0

您是否檢查過,如果在關閉花式框後執行afterClose()之後的方法?你能嘗試警報嗎? – 2013-04-10 16:08:39

+0

是的,我在afterClose中添加了一個警報,它顯示警報,但是它在加載彈出窗口之前顯示它看起來不正確,當然它應該在彈出窗口關閉後執行此操作。 – PeteTheGreek 2013-04-10 16:13:31

+0

你可以看到fancybox的文檔瞭解更多詳情 http://fancybox.net/api。你正在使用'iframe',因此你應該使用'父'。$。fancybox.close();',我想,我還沒有測試! – 2013-04-10 16:23:06

回答

1

我想你是不是用正確的方式的fancybox API: 試試這個,我還沒有測試它雖然: 注:如果這不起作用,那麼,去這個鏈接,並調整點點 http://fancybox.net/api

$(".fancybox").fancybox({ 
    'type': 'iframe', 
    'onStart':function(){ 
     $("#divtotoggle").hide(); 
    }, 
    'onClosed': function() { 
     $("#divtotoggle").show(); 
    } 
});