2016-10-04 97 views
0

我正在使用左側菜單中的Jquery的Collapse和Expand功能。如何使用href控制帶錨標記的切換

在這裏,當用戶點擊「父」,想顯示「管理員」和「帳戶」與錨標記與網址。在這一點上它工作得很好。

如果用戶點擊「管理員」,它將摺疊並顯示根元素「Parent」。

如何保持這裏的結構。

$(document).ready(function() { 
    $('ul.child').hide(); 

    $('li:has(.child)').click(function() { 
     $('ul',this).toggle('slow'); 
    }); 

    $('li').click(function(event) { 
     event.stopPropagation(); 
    }); 
<nav id="nav"> 
    <ul> 
     <li> 
      <a>Parent</a> 
      <ul class-"child"> 
       <li class="child"><a href="/Home/Admin">Admin</a></li> 
       <li class="child"><a href="/Home/Account">Account</a></li> 
      </ul> 
     </li> 
    </ul> 
</nav> 

沒有一個錨標記它會正常工作,但是當我包括與鏈接的錨標記,「stopPropagation」事件在李會失敗。這使它崩潰到根元素。

如果管理員用戶點擊它會崩潰到根作爲

.Parent 

怎樣做才能保持結構如下圖

.Parent 
    .Admin 
    .Account 

回答

0

據我得到,你點擊 「管理」 或 「賬戶」,它會重定向到適當的頁面,並在您想要打開它所在的層次時。

在這種情況下,您可以做的是,將當前網址與層次結構中的每個標記進行比較並比較網址。可以使用window.location.pathname來獲取要比較的路徑,並使用each來循環顯示a標籤。讓我知道你是否仍然懷疑它。

+0

是的,我想顯示左層它在哪裏。代碼參考將是一個很大的幫助 – Hegde

+0

'var currentURL = window.location.pathname; (aHref == currentURL)('href == currentURL('href ='href'); $('#nav .child li')。 ) { \t $(本).closest( 'ul.child')顯示();} });' 讓我知道,如果你什麼也得不到。 – SPViradiya

+0

如果它對你有幫助,最後的投票將是真正有用的:) – SPViradiya

0

$(document).ready(function() { 
 
    $('ul.child').hide(); 
 

 
    $('.parent').click(function() { 
 
     $('ul.child',this.parent).toggle('slow'); 
 
    }); 
 

 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav id="nav"> 
 
    <ul> 
 
     <li> 
 
      <a class="parent">Parent</a> 
 
      <ul class="child"> 
 
       <li><a href="#/Home/Admin">Admin</a></li> 
 
       <li><a href="#/Home/Account">Account</a></li> 
 
      </ul> 
 
     </li> 
 
    </ul> 
 
</nav>

這應該工作。 你的問題是,當你點擊李你點擊父李之前。

+0

這是導航,但左側菜單摺疊到基地。當我點擊管理員時,左側菜單隻顯示家長,右側顯示家庭/管理員頁面。 我想保留左側部分 - 父 - 管理 – Hegde

+0

這是因爲您的瀏覽器正在重定向'#/ Home/Admin'在您的url –

+0

它不按要求工作。點擊「管理員」後,右側部分正在導航,但左側部分僅顯示「家長」。 – Hegde

0

那麼,下面是它的工作代碼。

$(document).ready(function() { 
 
    $('ul.child').hide(); 
 

 
    $('li:has(.child)').click(function() { 
 
     $('ul',this).toggle('slow'); 
 
    }); 
 

 
    $('li').click(function(event) { 
 
     event.stopPropagation(); 
 
    }); 
 
    
 
    });
a{ 
 
    color: blue; 
 
    text-decoration: none; 
 
    
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav id="nav"> 
 
    <ul> 
 
     <li> 
 
      <a>Parent</a> 
 
      <ul class="child"> 
 
       <li class="child"><a href="/Home/Admin">Admin</a></li> 
 
       <li class="child"><a href="/Home/Account">Account</a></li> 
 
      </ul> 
 
     </li> 
 
    </ul> 
 
</nav>

希望這將幫助你:)

+0

左側菜單沒有保持其結構。它正在崩潰到基地。 – Hegde

+0

你想保持它打開..我的意思是父母和孩子默認? –

+0

當頁面打開時,我只想顯示「父」的根元素。點擊「家長」後會顯示「Admin」和「Account」。現在,如果用戶點擊「管理員」,則左側菜單必須保持原樣,右側部分必須導航。 – Hegde