У меня есть (семантически неверный) 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
скрыты, кроме тех, которые имеют год обучения. Когда пользователь нажимает на год, ссылки любого открытого года скользят вверх, а ссылки года клика - вниз. Проблема в том, что если я щелкаю по году, когда он открыт, он сначала скользит вверх (перехватывается первой строкой), а затем скользит вниз по линии переключения. Я бы хотел, чтобы он оставался закрытым с линией скольжения, не пересекающей текущий выбранный год.
Надеюсь, это имеет смысл.
Любая помощь приветствуется.