2009-10-07 53 views
0

進出口使用下列內容:的Jquery的slideToggle。點擊問題

$(function() { 
    $(".StaffSubjectClassNav ul").hide(); 
     $('.StaffSubjectClassNav h3').click(function(){ 
     $(this).toggleClass('clicked'); 
     $(this).next('ul').slideToggle('100'); 
    }); 
}); 

在下面的HTML:

<h3><a href="link">Link</a></h3> 
<ul> 
<li>Link1</li> 
<li>Link2</li> 
<li>Link3</li> 
</ul> 

它完美,隱藏<UL>並顯示,當我點擊<H3>

但是<a>也是一個鏈接,我該如何設置腳本,這樣如果他們點擊<a>裏面的<H3>它不滑動切換?

+0

難道你不覺得這對用戶有點困惑嗎? – Gumbo 2009-10-07 15:41:19

+0

它不適合我 - 點擊鏈接即可進入鏈接(在IE和Firefox中)。除此之外,我同意Gumbo--從可用性的角度來看,這很令人困惑。 – 2009-10-07 15:49:22

+0

並非真的如此。 – CLiown 2009-10-07 16:22:05

回答

0

h3包裝在a中,然後將操作添加到鏈接並返回false。例如:

JS:

$(function() { 
    $(".StaffSubjectClassNav ul").hide(); 
    $('#h3_link').click(function(){ 
     $(this).toggleClass('clicked'); 
     $(this).next('ul').slideToggle('100'); 
     return false; 
    }); 
}); 

HTML:

<a href="link" id="h3_link"><h3>Link</h3></a> 
<ul> 
    <li>Link1</li> 
    <li>Link2</li> 
    <li>Link3</li> 
</ul> 

你可能只需要改變你的CSS一點點。但是,這是做到這一點的正確方法。鏈接意味着被點擊,而不是H3標籤。

+0

'A'元素不允許像'H3'這樣的塊級元素作爲孩子。 – Gumbo 2009-10-07 16:00:58