jquery - 使用 JQuery 隐藏/显示 div 的更简单方法

标签 jquery html css

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 7 年前

我有五个侧边按钮,它们可以下拉到五个特定的“子菜单”。他们实际上只是div。我目前正在使用非常基本的 jquery 隐藏/显示它们,我想知道是否有更干净、更简单的方法来处理所有隐藏/显示调用?谢谢。

这是我的意思的 fiddle 示例:https://jsfiddle.net/SteveSerrano/b562v654/

HTML:

<!-- TOP MENU IS NOT HIDDEN UNTIL ANOTHER IS CLICKED -->
<button id="nyNavButton">NEW YORK</button>
<div id="nyContainer">
  <div class="nav">
    <ul>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
    </ul>
  </div>
</div>
<button id="njNavButton">NEW JERSEY</button>
<div id="njContainer">
  <div class="nav">
    <ul>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
    </ul>
  </div>
</div>
<button id="nhNavButton">NEW HAMPSHIRE</button>
<div id="nhContainer">
  <div class="nav">
    <ul>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
      <li>PHP generated links...</li>
    </ul>
  </div>
</div>

JQUERY:

$("#njContainer").hide();
$("#nhContainer").hide();

$("#njNavButton").click(function(){
    $("#njContainer").show();
    $("#nyContainer").hide();
    $("#nhContainer").hide();
    });

$("#nhNavButton").click(function(){
    $("#nhContainer").show();
    $("#nyContainer").hide();
    $("#njContainer").hide();
    });

$("#nyNavButton").click(function(){
    $("#nyContainer").show();
    $("#njContainer").hide();
    $("#nhContainer").hide();
    });

最佳答案

使用 not() 选择除所需元素之外的所有元素。然后您可以将它们组合成一个处理程序。

例如

$("#njContainer").hide();
$("#nhContainer").hide();

$(".button").click(function() {
  $('.container').not($(this).next('.container').show()).hide();
});

JSFiddle: https://jsfiddle.net/TrueBlueAussie/b562v654/3/

注意事项:

  • 我向按钮和容器元素添加了类(而不是管理所有唯一 ID)。
  • 此代码假设您的容器跟随 DOM 中的按钮。如果发生变化,您将需要更改 .next('.container')

关于jquery - 使用 JQuery 隐藏/显示 div 的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858300/

上一篇:html - 组件仅在 Safari 中损坏

下一篇:html - 内网IE兼容模式和Filereader的问题

相关文章:

jquery - 错误: Shell Form does not validate

javascript - 如何从span中选择子div中的前一个输入元素并绑定(bind)更改事件?

jquery - 如何将媒体查询附加到 &lt;style&gt; 标签?

python - 使用 python 从 javascript 标记中解析变量数据

javascript - 文本装饰过渡未显示

javascript - 如何使用 jQuery 来显示和淡出元素?

javascript - jQuery.data() : set values from php

javascript - onchange 函数需要时间来刷新页面

html - 使用 CSS(响应式)裁剪和缩放图像的特定区域

php - 验证后为什么我的选择标签数据被清除