2011-11-15 45 views
0

我一直在嘗試顯示水平主菜單,並且在主菜單中單擊一個項目時,子菜單將垂直顯示頁面的左側。 這是主頁面。當點擊水平主菜單時,在頁面左側顯示子菜單;顯示/隱藏div錯誤

<div id="middlebar"> 
    <ul class="menu">       
    <li><%= Html.ActionLink("Home", "Index", "Home")%></li> 
    <li id="lnkConfiguration" ><%= Html.ActionLink("Configuration", "Index", "User")%>/li> 
    <li><%= Html.ActionLink("Application Authentication", "Index",ApplicationAuthentication")%></li> 
    <li id="lnkUserAuthentication"><%= Html.ActionLink("User Authentication", "Index", "UserAuthentication")%></li> 
    <li><%= Html.ActionLink("About", "About", "Home")%></li> 
    </ul>     
</div> 
<div> 
<table width="100%"> 
    <tr valign="middle"> 
     <td style="width:150px" > 
     <div id="divConfiguration" > 
      <%Html.RenderPartial("SubMenuConfiguration"); %> 
     </div> 
     </td> 
     <td><asp:ContentPlaceHolder ID="MainContent" runat="server" /></td> 
    </tr> 
    </table> 
</div> 

我想隱藏子菜單,直到主菜單被點擊。這是腳本:

<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    $("#divConfiguration").hide(); 
    $('#lnkConfiguration').click(function() { 
    $('#divConfiguration').show(); //.toggle(400);      
    }); 
    })      
</script> 

但是,什麼情況是,當點擊配置菜單和頁面被定向到controller.Once加載頁面時,子菜單disapperas時出現的子菜單。發生這種情況是因爲腳本在單擊配置選項卡後重新加載後再次運行。爲了解決這個問題,我可能需要設置一些表明我在配置頁面上的東西,以便子菜單不被隱藏。但是,我不知道在哪裏設置價值。它是否在用戶控制器索引操作中?如果是這樣,我如何將值傳遞給主頁面單擊事件?有什麼建議麼?

回答

0

我從來沒有使用asp之前,所以很抱歉,如果這是錯誤的,但這將停止加載和打開div的鏈接。如果你需要加載鏈接以獲得#divConfiguration中的內容,那麼我會建議ajax。

$(document).ready(function() { 
    $("#divConfiguration").hide(); 
    $('#lnkConfiguration').click(function(e) { 
     e.preventDefault(); 
     $('#divConfiguration').show(); //.toggle(400);      
    }); 
}); 

AJAX: 做一個頁面來接收後變量

 $.ajax({ 
      type: 'POST', 
      url: 'divconfiguration.asp', 
      data: 'page='$(this).attr('href'), 
      success: function (msg) { 
      $('#divConfiguration ').html(msg).show(); 
      } 
     }); 
後只顯示在div配置