2009-10-30 3 views
0

HTML을 전환하지 않습니다이 같은목록은 다음과 같이 내가 (의미 론적으로 잘못된)가

<ul> 
<li class="year">2009</li> 
<li><a href="project1.html">Project 1</a></li> 
<li><a href="project2.html">Project 2</a></li> 
<li><a href="project3.html">Project 3</a></li> 
</ul> 

<ul> 
<li class="year">2008</li> 
<li><a href="project4.html">Project 4</a></li> 
<li><a href="project5.html">Project 5</a></li> 
<li><a href="project6.html">Project 6</a></li> 
</ul> 

<ul> 
<li class="year">2007</li> 
<li><a href="project7.html">Project 7</a></li> 
<li><a href="project8.html">Project 8</a></li> 
<li><a href="project9.html">Project 9</a></li> 
</ul> 

와 jQuery를 스크립트를 필요에 따라

$(function() { 
    $('.year').click(function() { 
     $('ul').find('li:not(.year)').slideUp('fast'); 
     $(this).closest('ul').find('li:not(.year)').toggle('fast'); 
    }) 
}) 

그것은 거의 작동합니다. 기본적으로 모두 ul li -s는 수업 연도가있는 사용자를 제외하고 숨겨져 있습니다. 사용자가 한 해를 클릭하면 열린 해의 링크가 위로 올라가고 클릭 된 해의 링크가 아래로 내려갑니다. 문제는 제가 열리는 해를 처음 클릭하면 (첫 번째 줄에 가로 채서) 슬라이드 한 다음 토글 줄을 따라 아래로 내려가는 것입니다. 현재 클릭 한 연도를 가로 채지 않고 슬라이드를 위로 올려 닫고 싶습니다.

희망적입니다.

도움을 주시면 감사하겠습니다.

답변

1

이미 표시된 것을 구분하려면 :hidden 또는 :visible 선택자를 사용해야 할 수도 있습니다.

$(function() { 
    $('.year').click(function() { 
     $('ul').find('li:not(.year)').slideUp('fast'); 
     $(this).closest('ul').find('li:not(.year):hidden').toggle('fast'); 
    }) 
}) 
+0

그런가요? – janosrusiczki

0

열역학 : 예를 들어 여기에서 표현식을 찾는 대신 반대로 필터 만 사용할 수는 없습니다. : 아닙니다 (: blah) 또는 :하지 않습니다 ([blah], not : not (.blah))?

관련 문제