2012-06-08 1 views
0

간단한 작업을 수행하려고합니다. 중첩 된 UL이있는 2 단계 메뉴가 있습니다. 내부 UL은 display : none으로 설정되므로 기본 범주 만 표시됩니다. 기본 범주에서 기본 onclick 동작을 방지하고 해당 내부 UL을 제쳐두어 페이드하고 싶습니다.Jquery inner UL FadeIn/FadeOut

<nav id="type-navigation"> 
    <ul id="nav_categories" class="subs"> 
     <li><a href="#">Category 1</a> 
       <ul> 
       <li><a href="#">Link1</a></li> 
       <li><a href="#">Link2</a></li> 
       <li><a href="#">Link3</a></li> 
       </ul> 
     </li> 
     <li><a href="#">Category 2</a> 
       <ul> 
       <li><a href="#">Link1</a></li> 
       <li><a href="#">Link2</a></li> 
       <li><a href="#">Link3</a></li> 
       </ul> 
     </li> 
</ul> 
</nav> 

I이 사용하는 jQuery를하고 싶으면 :

내 HTML이입니다. 첫 번째 카테고리를 클릭하면 자녀 UL을 FadeIn 옆에 표시해야합니다. 다른 카테고리를 클릭하면 이전에 표시된 UL은 FadeOut이고 다른 카테고리 UL은 FadeIn이어야합니다.

이 내 jQuery를하고는 예상대로 작동하지 않습니다 :

$("ul li a").toggle(function() { 
        $(this).children("ul").fadeIn("slow"); 
        }, 
        function() { 
       $(this).children("ul").fadeOut("slow"); 
       }); 
+0

지금은 어떻게됩니까? 무엇이 달라야 하는가? – Thomas

+0

우선, 첫 번째 범주 링크를 클릭하면 리소스로 이동합니다 ... 예제에서는 실제로 링크가 없습니다. #. 실제로 위의 메뉴가 dinamically 생성되고 모든 # 사실/products/category, 첫 번째 레벨에 대한 링크입니다 ... 나는 어떻게해서든지 preventDefault 링크로 이동하려면 첫 번째 카테고리 링크로 비활성화해야합니다 페이드 인 활성화 – Milksamsa

답변

2

를 옆 <a><ul>가 CSS를 display:none에 숨겨져 있다고 가정 :

$(".subs > li > a").click(function() { 
    $(this).parents('.subs').find('ul').hide(); 
    if($(this).next("ul").is(":visible")) { 
      $(this).next("ul").fadeOut("slow"); 
    } else { 
     $(this).next("ul").fadeIn("slow"); 
    } 
    return false; 
}); 
+0

이것은 효과가있었습니다. 로 preventDefault하기 위해 단지 첫 번째 범주 인공 지능 또한 $ ("UL #의 nav_categories> 리>은")를 작성했다 (함수 (이벤트) {\t \t \t \t \t에서는 event.preventDefault(); \t을})를 클릭합니다. ; – Milksamsa

2

this example를 사용해보십시오. 예로부터

CSS 예에서

nav > ul > li > ul { 
display:none; 
}​ 

jQuery를 :이 도움이

$('ul#nav_categories > li > a').click(function(e) { 
    e.preventDefault(); 
    theClickedLi = $(this); 
    $('#nav_categories').find('ul').fadeOut(); 
    theClickedLi.parent('li').find('ul').fadeIn(); 
}); 

희망.

+0

+1을 친구에게 보내십시오! :) –

+0

@Tats_innit 고마워. 하지만 토마스의 대답이 OP를 만족시키는 것 같습니다. – KiiroSora09

+0

걱정하지 마라, 네 & 멋진 대답을 가지고있다 :) 좋은 것을 가지고!, 건배! –