jQuery 切换菜单隐藏/显示(新菜单打开时关闭其他菜单)
感谢 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>
谢谢。
thanks to Nick Craver I've got a nice toggle menu going, however i've come up with the problem that if users keep clicking new menus the page will keep growing which i dont want, so the idea is:
as one menu opens, any currently open menus to close.
The full source is @ http://the-dot.co.uk/new/
here are 2 snippets of the code I'm using.
<script type="text/javascript">
$(document).ready(function() {
$("ul li a").click(function() { $(this).parent().next().toggle("fast"); });
});
</script>
and html structure is
<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>
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你可以这样做:
你可以在这里测试一下,它会切换什么兄弟
仍然,但随后查看其
.siblings()
具有 ID 属性和.hide ()
如果显示的话。如果标记没有锁定,您可以像这样进一步简化它:
和这样的脚本:
这是一个偏好问题,但我发现这种方法更干净,更适合样式, 在此处查看结果。
You can do something like this:
You can test it out here, what this does it toggle the sibling
<li>
still, but then looks at its.siblings()
that have an ID attribute and.hide()
them if show.If the markup isn't locked in, you could simplify it further like this:
And script like this:
It's a matter of preference, but I find this approach a bit cleaner and more style-able, check out the result here.