2012-07-26 34 views
2

我遇到了一些麻煩。 我正在做一個asp.net mvc3應用程序,我下載了一些CSS菜單,事情是我想保持菜單選項卡被點擊後保持活動狀態,只有當另一個點擊時纔會改變。css類在頁面重新加載後生效

這裏的菜單上_Layout.cshtml

<nav> 
<div class="cssmenu"> 
       <ul> 
        <li class='active'><span>@Html.ActionLink("Início", "Index", "Home")</span></li> 
        <li><span>@Html.ActionLink("Tarefas Contabilidade", "SelectEmpresa", "Empresa")</span></li> 
        <li><a href='#'><span>Clientes</span></a> 
         <ul> 
          <li><span>@Html.ActionLink("Listar clientes", "ListarEmpresas", "Empresa")</span></li> 
          </ul> 
        </li> 
        <li><a href='#'><span>Balancetes</span></a> 
         <ul> 
          <li><span>@Html.ActionLink("Listar registos", "ListaBalancetesPorSalaoMes", "Balancete")</span></li> 
         </ul> 
        </li> 
        <li><span>@Html.ActionLink("Sobre", "About", "Home")</span></li> 
</ul> 
</div> 
     </nav> 

的代碼,我有這樣的腳本:

<script type="text/javascript"> 

        $("li").click(function() { 
         $("li").removeClass("active"); 
         $(this).addClass("active"); 

        }); 
</script> 

,我把第一個選項卡有類=「主動」的作品,但腳本似乎並沒有工作,當我點擊另一個菜單選項卡,它只顯示第一個活動 請稍微幫助:)

UPDATED

這是渲染HTML:

  <nav> 

      <div class="cssmenu"> 

       <ul> 

        <li><span><a href="/">In&#237;cio</a></span></li> 

        <li><span><a href="/Empresa/SelectEmpresa">Tarefas Contabilidade</a></span></li> 

        <li><a href='#'><span>Clientes</span></a> 

         <ul> 

          <li><span><a href="/Empresa/ListarEmpresas">Listar clientes</a></span></li> 

          <li><span><a href="/Salao/ListaSalaoByEmpresa">Listar sal&#245;es</a></span></li> 

          <li><span><a href="/Salao/ListaEmpregadosBySalao">Gerir empregados</a></span></li>       

          <li><span><a href="/Empresa/Create">Novo cliente</a></span></li> 

          <li><span><a href="/Salao/Create">Novo sal&#227;o</a></span></li> 

          </ul> 

        </li> 

        <li><a href='#'><span>Balancetes</span></a> 

         <ul> 

          <li><span><a href="/Balancete/ListaBalancetesPorSalaoMes">Listar registos</a></span></li> 

          <li><span><a href="/Balancete/UploadFile">Upload novo balancete</a></span></li> 

          <li><span><a href="/Balancete/GraficoBalancetePorSalao">Mapa Resultados/Gr&#225;fico</a></span></li> 

          <li><span><a href="/Balancete/MapaEstruturaRendimentoseGastos">Mapas Contabilidade/Gest&#227;o</a></span></li> 

          <li><span><a href="/Balancete/MapasGestao">An&#225;lise Rentabilidade</a></span></li> 

          <li><span><a href="/Balancete/alteraTaxas">Alterar taxas</a></span></li> 

         </ul> 

        </li> 

        <li><span><a href="/Home/About">Sobre</a></span></li> 







       </ul> 







      </div> 



</nav> 

我不知道我是否應該把JavaScript中的股利或東西在裏面的xD

+0

你的問題起到誤導的人,我在這裏爲重新加載頁面後活動菜單項。 – Manoj 2013-09-24 10:17:40

回答

2

您可以使用child selector將選擇所有直接子元素,請嘗試以下操作:

$(document).ready(function(){ 
    $(".cssmenu > ul > li").click(function() { 
      $(this).siblings().removeClass("active"); 
      $(this).addClass("active"); 
    }); 
}) 

如果您要選擇內ul標籤的li標籤,你可以嘗試:

$(document).ready(function() { 
    $("ul:eq(1) > li").click(function() { 
     $('ul:eq(1) > li').removeClass("active"); 
     $(this).addClass("active"); 
    }); 
}) 
+0

只適用於當我點擊Clientes/Balancetes ...那些有「兒童菜單」的人......在其他菜單選項卡中它不工作:S – 2012-07-26 13:49:52

+0

@HélderGonçalves嘗試更新的答案。 – undefined 2012-07-26 13:52:22

+0

仍然沒有,應用程序讀取此_layout.cshtml每次它重新加載頁面,不知道它是否會幫助任何地方 – 2012-07-26 14:01:52

0

你可以嘗試:

<script type="text/javascript"> 
    $("li a").bind('click', function() { 
     $("li").removeClass("active"); 
     $(this).addClass("active"); 
    }); 
</script> 

裏項目無法點擊,所以你必須將點擊事件綁定到a。

0

嘗試

$("li").click(function (e) { 
    e.preventDefault(); 
    $(this).siblings().removeClass("active").end().addClass("active"); 

}); 
+0

這一個做主動作用,但不重定向到任何href,所以只有效果和重定向到任何地方 – 2012-07-26 13:59:50