javascript - 在页面加载jquery时隐藏子菜单

标签 javascript jquery html css menu

我创建了一个带有子菜单的垂直菜单。我使用了无序列表。当我的页面加载时,它会显示顶层菜单和子菜单,但是当我单击顶层时,它将隐藏子菜单,该子菜单适用于点击事件。我希望我的页面只显示顶级菜单,只有单击一次才会显示子菜单。我是 jquery 的新手,非常感谢您的帮助。

$(function() {

  $('#menu li a').click(function(event) {
    var elem = $(this).next();
    if (elem.is('ul')) {
      event.preventDefault();
      $('#menu ul:visible').not(elem).slideUp();
      elem.slideToggle();
    }
  });
});
#menu {
  padding: 0;
  margin: 0;
  list-style-type: none;
  font-size: 13px;
  color: #717171;
  width: 100%;
}

#menu li {
  border-bottom: 1px solid #eeeeee;
}

#menu li a:hover {
  color: White;
  background-color: #ffcc00;
}

#menu a:link {
  color: #717171;
  text-decoration: none;
  display: block;
  padding: 7px 10px;
}

#menu a:hover {
  color: White;
}

#menu li ul {
  padding: 0;
  margin: 0;
  list-style-type: none;
  background-color: #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
  <li><a href="#">Top Menu 1</a>
    <ul>
      <li>
        <a href="#" target="_parent">Menu 1</a>
      </li>
      <li>
        <a href="#" target="_parent">Menu 2</a>
      </li>
      <li>
        <a href="#" target="_parent">Menu 3</a>
      </li>
    </ul>
  </li>
</ul>
<ul id="menu">
  <li><a href="#">Top Menu 2</a>
    <ul>
      <li>
        <a href="#" target="_parent">Menu 1</a>
      </li>
    </ul>
  </li>
</ul>
<ul id="menu">
  <li><a href="#">Top Menu 3</a>
    <ul>
      <li>
        <a href="#" target="_parent">Menu 1</a>
      </li>
    </ul>
  </li>
</ul>
<ul id="menu">
  <li><a href="#">Top Menu 4</a>
    <ul>
      <li>
        <a href="#" target="_parent">Menu 1</a>
      </li>
    </ul>
  </li>
</ul>

最佳答案

css 可以在没有 javascript 的情况下做到这一点。将 ul 子菜单设置为 display: none

#menu li ul
{
     padding:0;
     margin:0;
     list-style-type:none;
     background-color:#999;
     display: none;
}

Demo

关于javascript - 在页面加载jquery时隐藏子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30304953/

相关文章:

javascript - 在 React/Next.js 中显示内容并隐藏其他内容

javascript - 阻止焦点或阻止滚动到焦点元素

jquery - 如果 addClass 成功如何提示?

javascript - document.querySelectorAll 的返回类型是什么

javascript - Google Firebase 身份验证后切换 HTML 页面(非异步)

javascript - 根据location.hash传递的数据重新渲染ReactJS嵌套子组件

javascript - ES6 到 ES5 需要帮助修复

javascript - 基于自定义数组顺序的 tinysort 排序 div

jquery - 以编程方式将可拖动对象放置在可放置对象上并触发放置

html表格间距和边距错误