2011-02-23 40 views
0

這裏點擊擴大是我的HTML:jQuery的手風琴 - 防止鏈路

<div class="accord"> 

    <ul class="root static"> 

     <li class="static"> 

      <a class="static menu-item" href="http://google.com"> 
      <span class="additional-background"> 
       <span class="menu-item-text">Heading</span> 
      </span> 
      </a> 

      <ul class="static"> 
      <li class="static"> 
       <a class="static menu-item" href="http://msn.com"> 
       <span class="additional-background"> 
        <span class="menu-item-text">Item 1</span> 
       </span> 
       </a> 
      </li> 
     </ul> 

     </li> 

.. items continue .. 

jQuery的:

$(function() { 
$('.accord .root .static ul.static').hide(); 
    $('.ms-quickLaunch .root .static:has(ul.static)').each(function (i, elmnt) { 
     $(this).addClass('linksBelow'); 
    }); 
    $('.accord .linksBelow').click(function() { 
     $(this).find('ul.static').slideToggle('fast'); 
     $(this).toggleClass('twirl'); 
    }); 
}); 

什麼與上面的情況是,當你點擊<li>標題手風琴擴張但是標題包含鏈接<a class="static menu-item" href="http://google.com">

我想更改上面的jQuery,以便當我單擊標題中的鏈接時,手風琴不會展開,但是當我點擊鏈接周圍的任何其他區域時,我希望手風琴展開。

一些我需要能夠告訴鏈接被點擊,如果該鏈接被點擊,防止手風琴擴大。

任何人有任何想法?

鏈接未設置爲display:block,因此它不佔用標題的全部寬度。

回答

0
$('.accord .linksBelow').click(function(e) { 
    $(this).find('ul.static').slideToggle('fast'); 
    $(this).toggleClass('twirl'); 
    e.stopPropagation(); 
}); 
+0

那麼,禁用鏈接,但我不想禁用鏈接。 – CLiown 2011-02-23 14:08:28

+0

你是對的,嘗試更新的代碼。 – HyderA 2011-02-23 15:05:14

+0

現在鏈接可以點擊,但點擊LI無法展開手風琴。 – CLiown 2011-02-23 15:55:55