我有一个(语义错误的)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是隐藏的。当用户单击一年时,任何打开的一年的链接都会向上滑动,单击的一年的链接也会向下滑动。问题是,如果我单击打开的年份,它首先向上滑动(被第一行截获),然后通过切换行向下滑动。我希望它保持关闭与幻灯片上行线,而不是截取目前点击的一年。
希望这是有道理的。
感谢您的帮助。