2015-10-30 97 views
0

這是我的導航代碼,我試圖通過jQuery來激活它,但我需要一個小的解決方案。如何通過jquery激活鏈接?

<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> 
      <ul class="nav navbar-nav side-nav"> 
       <li class="active" id="dashboard"> 
       <a href="admin/users/dashboard">Dashboard</a>      
       </li> 
       <li id="clients"> 
       <a href="admin/users/clients">Clients</a>      
       </li> 
      </ul> 
</nav> 

我可以通過使用onclick事件來激活鏈接。每頁如果我對

$('#deshboard').click(function(){ 
    $(this).addClass('active'); 
}) 

它的工作,但需要寫很多代碼。有沒有簡單的解決方案?

+0

因此,增加這個'active'下課後,就會轉到另一頁,這意味着你將失去任何客戶端的變化。對? –

+0

如果我導航到另一個頁面,我需要再次爲活動頁面編寫活動代碼。例如,如果我去客戶頁面。我需要wright $('#clients')。click(function(){.......我需要一個小的解決方案,就像這個鏈接在url中激活,然後激活這個鏈接 –

+0

我的意思是,如果你總是返回如你所示的HTML代碼,那麼你總是將'dashboard'作爲'active'項目,即使你應用了這樣的腳本,當你點擊'clients'時,它會變成'active'一秒鐘,然後一個頁面將重新加載,並且'dashboard'將在您處於'clients'頁面時再次變爲活動狀態,您需要將其設置爲服務器端。 –

回答

2

只需做到以下幾點:

只需使用單一類的所有鏈接,例如 「common_class」,然後執行以下操作,

HTML

<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> 
      <ul class="nav navbar-nav side-nav"> 
       <li class="active common_class"> 
       <a href="admin/users/dashboard">Dashboard</a>      
       </li> 
       <li class="common_class"> 
       <a href="admin/users/clients">Clients</a>      
       </li> 
      </ul> 
</nav> 

的Jquery

$('.common_class').click(function(){ 
    $('.common_class').removeClass('active'); // it remove all the active links 
    $(this).addClass('active'); // it adds active class to the current link you have opened 
}) 

這樣可以節省很多你的代碼,而且很容易理解。

注意:在頭文件中添加此jquery,它必須對所有頁面都相同。

去用它

+0

@SatuSultana我同意Insomania的答案,聰明和簡單;) –

+0

加載頁面後它不工作。我認爲這應該是URL的基礎改變。 –

+0

你必須爲這兩個頁面使用相同的頭文件,如果頭文件沒有被創建,那麼在這兩個文件上調用上面的jquery函數, –

0

使用普通類UL標籤

​​

和JS將是:

$('.common_class li').click(function(){ 
    $('.common_class li').removeClass('active'); 
    $(this).addClass('active'); 
})