2010-08-19 5 views
0

다음은 문제가 없습니다. 그러나 나는 2 개의 서브 메뉴를 가지고 있는데, 둘 중 하나에 마우스를 올리면 두 아이 "ul.menu_body"가 페이드 인됩니다.jquery this confusion

아마도 "this"를 어딘가에 사용해야하므로 페이드는 원하는 메뉴에만 적용됩니다.

나는 ("ul.menu_body"이) $ 추가 .fadeIn ('빠른') 을 시도하지만 그것이 전부 작동하지 중지 - 오류의 마음을 (내가 볼 수)

어떤 아이디어? 고맙습니다.

$(document).ready(function(){ 

      $("ul.menu_body li:even").addClass("alt"); 
      $("li a.menu_head").hover(function() { 
       $("ul.menu_body").fadeIn('fast') 
      }); 
      $(".subMenuParent").mouseleave(function(){ 
       $("ul.menu_body").fadeOut(); 
       $("li.subMenuParent").removeClass("active"); 

      }); 
// rest of my script 

은 명확하게 - 아래의 코드는 "ul.menu_body"의 모든 인스턴스는 "리 a.menu_head는"가리킬 때 페이드 인 것을 의미한다.

나는 모든 관련 서브 메뉴가 표시되기를 원합니다.

답변

2

당신은 가까이 있었지만 li 요소가 아닌 앵커 요소 (this)에 마우스를 올려 놓습니다. 나는 ul이 앵커의 자식이 아니라, 리의 자식이라고 가정한다. 사용해보십시오 :

$('ul.menu_body',$(this).closest('li')).fadeIn('fast'); 

또는

$(this).closest('li').find('ul.menu_body').fadeIn('fast'); 
+0

아, 그건 의미가 있습니다. 감사합니다. – Ross