2011-04-21 5 views
1

나는 목록 항목을 토글하는 함수를 호출하는 클릭을 바인딩하는 4 개의 메뉴 드롭 다운 목록이 있습니다.: 애니메이션을 수행 할 때 visible이 항상 true를 반환합니다.

4 개의 메뉴를 모두 클릭하면 4 개의 목록 항목이 모두 표시/숨기기 전환됩니다. 그러나 항목 자체를 클릭하면 현재 표시되는 나머지 메뉴가 전환되고 숨겨 지도록 항목을 만들고 싶습니다.

heres 내가 어떻게 확인합니까하지만 작동하지 않는 것.

자바 스크립트 :

test.$sections //$('#nav').find('>li') 
    .find('ul') 
    .filter(':visible') 
     .parent() 
    .each(test.toggleItemNav); 

'toggleItemNav' : function() { 
var $li = $(this); 
$li.find('ul') 
.stop(true, true 
.animate({ opacity: 'toggle', height: 'toggle' },{duration: 800, specialEasing: { opacity:'easeOutExpo', height: 'easeOutExpo' }}); 

}, 당신은 애니메이션 동안 객체에 속성을 설정하고를 필터링 할 수

<ul id="nav"> 
    <li class="11">11 
     <ul> 
       <li><a>1</a></li> 
       <li><a>2</a></li> 
       <li><a>3</a></li> 
     </ul> 
    </li> 
    <li class="22">22 
     <ul> 
       <li><a>1</a></li> 
       <li><a>2</a></li> 
       <li><a>3</a></li> 
     </ul> 
    </li> .... and so on 
+0

I didn를 알았어. 클릭하면 메뉴가 표시됩니다. – tenshimsm

+0

클릭 할 때 4 개의 메뉴가 있습니다. 항목 목록이 표시됩니다. 내 문제는 내가 4 메뉴를 클릭하면 4 목록이 표시됩니다. 하지만 4 목록에 표시된 항목을 클릭하면 4 목록을 모두 닫고 싶습니다. – teorius

답변

0

HTML :

test.$sections.find('ul:visible:not([animating="true"])'); 
... 

var $ul = $li.find('ul'); 
$ul.attr('animating', 'true'); 
... 
$ul.animate(/* your params */, function() { $ul.attr('animating', 'false'); }); 
관련 문제