感谢Nick Craver我有一个很好的切换菜单,但是我想出了一个问题,即如果用户不断点击新菜单页面会不断增长,我不想要,所以我的想法是:
当一个菜单打开时,任何当前打开的菜单将关闭。
完整的来源是@ http://the-dot.co.uk/new/
这里是我正在使用的代码的两个片段。
<script type="text/javascript">
$(document).ready(function() {
$("ul li a").click(function() { $(this).parent().next().toggle("fast"); });
});
</script>
和html结构是
<ul class="navigation">
<li><a name="us" title="us">Us</a></li>
<li id="us">about thedot</li>
<li><a name="portfolio" title="portfolio">Portfolio</a></li>
<li></li>
<li><a name="contact" title="contact">Contact</a></li>
<li id="contact">contact deets
</li>
<li><a name="twitter" title="twitter">Twitter</a></li>
<li id="twit">some twitter shit</li>
<li><a href="#">Blog</a></li>
</ul>
感谢。
答案 0 :(得分:5)
您可以这样做:
$(function() {
$("ul li a").click(function() {
$(this).parent().next().toggle("fast").siblings("[id]").hide("fast");
});
});
You can test it out here,这样做可以切换兄弟<li>
,但随后会查看具有ID属性的{em> .siblings()
.hide()
如果显示它们。
如果没有锁定标记,您可以进一步简化它:
<ul class="navigation">
<li class="toggle">Us</li>
<li class="content">about thedot</li>
<li class="toggle">Portfolio</li>
<li class="content"></li>
<li class="toggle">Contact</li>
<li class="content">contact deets</li>
<li class="toggle">Twitter</li>
<li class="content">some twitter shit</li>
<li><a href="#">Blog</a></li>
</ul>
这样的剧本:
$(function() {
$("li.content").hide();
$("ul.navigation").delegate("li.toggle", "click", function() {
$(this).next().toggle("fast").siblings(".content").hide("fast");
});
});
这是一个偏好问题,但我发现这种方法更清洁,更具风格,check out the result here。