2013-01-07 26 views
0

我目前正在進行導航工作,並遇到了一些麻煩。它有一個固定的導航欄,並帶有一個用於導航的兒童的slideToggle菜單。我需要將具有「父」類的「li」返回爲false,以便在單擊時不會跳回到頁面的頂部。但是,當我這樣做時,它將禁用所有的兒童鏈接。是否有可能只針對父母本身並只返回那個假?在jQuery導航中只返回false ul(排除子鏈接)

HTML:

<nav> 
<ul> 
    <li><a href="#"></a></li> 
    <li class="parent"> 
    <a href="#"></a> 
    <ul> 
     <li><a href="#"></a></li> 
     <li><a href="#"></a></li> 
    </ul> 
    </li> 
    <li><a href="#"></a></li> 
</ul> 
</nav> 

JS:

$("li.parent").click(function(){ 
    $(this).children("ul").slideToggle(300); 
    return false; 
}); 
+2

http://api.jquery.com/first/ – algorhythm

+1

修正你的代碼。你在ul之外打開標籤和li元素。您可以發佈完整的代碼。並且不要放置導航或其他未知元素。 –

+0

您的HTML無效。 –

回答

0

中第一次出現這樣我找到了一個解決方案,通過使用如果聲明和.preventDefault()

下面的代碼是什麼我結束了

$("li.parent").click(function(e){ 
    if($(this).children("ul").is(':hidden')) { 
     e.preventDefault(); 
    }; 
    $(this).children("ul").first().slideToggle(300); 
}); 
2

嘗試與eq(0)只匹配<ul>小號

$("li.parent").click(function(){ 
    $(this).children("ul").eq(0).slideToggle(300); 
    return false; 
}); 
+0

我試過這個沒有運氣。如果你點擊那個ul的鏈接,他們仍然返回false。我只需要將ul返回爲false。 – souporserious