2013-08-05 16 views
0

我似乎無法讓div在回發後保持可見狀態。可見性部分有什麼問題嗎?如何在回發後保持DIV可見

function toggleOverlay(){ 
     var overlay = document.getElementById('overlay'); 
     var specialBox = document.getElementById('specialBox'); 
     overlay.style.opacity = .8; 
     if(overlay.style.display == "block"){ 
      overlay.style.display = "none"; 
      specialBox.style.display = "none"; 
     } else { 
      overlay.style.display = "block"; 
      specialBox.style.display = "block"; 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <!-- Start Overlay --> 
    <div id="overlay"></div> 
    <!-- End Overlay --> 
    <!-- Start Special Centered Box --> 
    <div id="specialBox" runat="server"> 
    <script type="text/javascript"> if(Page.IsPostBack) 

       { 
        specialBox.Style["visibility"] = "visible"; 
       }</script> 

回答

1

您需要在服務器端代碼中設置與客戶端代碼中相同的屬性。

<script runat="server"> 
    if(Page.IsPostBack) 
    { 
     specialBox.Style["display"] = "block"; 
    } 
</script> 

在CSS有兩種方法來隱藏/顯示元件:

顯示:無或塊/內聯/內聯塊=>隱藏元件並刪除它正在採取 可視性空間:隱藏/可見=>隱藏元素,使佔用的空間空白

如果其中任何一個都被設置爲隱藏值,該元素將不可見

除此之外,你的腳本標籤還說"text/javascript",你真的想執行服務器端代碼,所以我添加了一個runat="server"-屬性

+0

好的是我的代碼有效嗎?我在哪裏插入代碼? –

+0

用我放入答案的那個替換上一個腳本塊 – Kenneth