【问题标题】:jQuery toggle menu hide/show (close other menus when new menu opens)jQuery切换菜单隐藏/显示(新菜单打开时关闭其他菜单)
【发布时间】:2011-05-18 05:10:34
【问题描述】:

感谢Nick Craver 我有一个不错的切换菜单,但是我遇到了一个问题,如果用户继续点击新菜单,页面将继续增长,这是我不想要的,所以我的想法是:

当一个菜单打开时,所有当前打开的菜单都将关闭。

完整来源是@http://the-dot.co.uk/new/

这是我正在使用的代码的 2 个 sn-ps。

<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>

谢谢。

【问题讨论】:

  • 第一和第二段解释了问题和我想要的:)

标签: jquery menu toggle show-hide


【解决方案1】:

你可以这样做:

$(function() {
  $("ul li a").click(function() { 
      $(this).parent().next().toggle("fast").siblings("[id]").hide("fast");
  });
});

You can test it out here,这是什么它仍然切换兄弟&lt;li&gt;,但随后查看 .siblings() 具有ID 属性和.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

【讨论】:

  • 啊,天才 :) 第一段代码完美运行。我实际上在菜单中有很多 php 和其他内容,所以它更像是一个显示部分而不是菜单。我发现当我重新编写它以适应第二个替代方案时,它与许多其他样式混淆了很多。所以谢谢,但我会用你的第一个答案:)非常感谢:)
猜你喜欢
  • 2018-09-29
  • 2017-06-30
  • 2023-01-10
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多