jquery - 如何让李父被李子推倒(手机导航)

标签 jquery html css

非常感谢,

我受困于移动导航。我有主导航和一些隐藏的子导航。 单击父 li 会打开子导航,但子导航会隐藏下面的所有其他父 li。

如何通过向下插入父 li 使子 li“挤进”父 ul 之间?

$(".main-nav").find("li").click(function() {
  $(this).find(".subnav").toggle();
});
.main-nav {
  border: 1px solid red;
  position: relative;
}

.main-nav li {
  display: inline-block;
  width: 100%;
}

.subnav {
  border: 1px dashed blue;
  position: absolute;
  display: none;
  background-color: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="main-nav">
  <li>Nav 1</li>
  <li>Nav 2</li>
  <li> Nav 3
    <ul class="subnav">
      <li>Subnav 1</li>
      <li>Subnav 2</li>
    </ul>
  </li>
  <li>Nav 4
    <ul class="subnav">
      <li>Subnav 1</li>
      <li>Subnav 2</li>
      <li>Subnav 3</li>
    </ul>
  </li>
  <li>Nav 5</li>
</ul>

谢谢!

最佳答案

.subnav position 更改为 relative:

$(".main-nav").find("li").click(function() {
  $(this).find(".subnav").toggle();
});
.main-nav {
  border: 1px solid red;
  position: relative;
}

.main-nav li {
  display: inline-block;
  width: 100%;
}

.subnav {
  border: 1px dashed blue;
  position: relative;
  display: none;
  background-color: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="main-nav">
  <li>Nav 1</li>
  <li>Nav 2</li>
  <li> Nav 3
    <ul class="subnav">
      <li>Subnav 1</li>
      <li>Subnav 2</li>
    </ul>
  </li>
  <li>Nav 4
    <ul class="subnav">
      <li>Subnav 1</li>
      <li>Subnav 2</li>
      <li>Subnav 3</li>
    </ul>
  </li>
  <li>Nav 5</li>
</ul>

关于jquery - 如何让李父被李子推倒(手机导航),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44572907/

相关文章:

javascript - 绘制 100 万个正方形的可点击网格

html - 下拉菜单布局困惑?

php - mysql 喜欢你和其他人

javascript - 图片点击打开特定图片相册的灯箱

html - css flex-box wrap 但避免区域

javascript - 如何制作互惠基金 - SIP 计算器?

javascript - 使用 JavaScript 从 HTML 元素中移除特定的事件监听器集

html - CSS - 在边距中包含滚动条大小

javascript - MVC View 文件 _Layout.cshtml 中 head 和 body 的 Render Bundle 之间的区别

jquery - jqgrid 过滤器在加载时删除一行一次