javascript - 隐藏的嵌套导航在悬停之前显示

标签 javascript jquery html

我使用列表作为导航,并使用 CSS 来设计“饮食”主页的水平导航/子页面的垂直导航。 我应用 JavaScript 来隐藏/显示导航中的子页面链接。它可以工作,但是当页面加载时,会显示 3 个链接 - 当我将鼠标悬停在“饮食”项目上后,它们会被隐藏。如果我再次悬停,它会再次显示并按预期工作。

基本上,如何确保这三个链接从一开始就隐藏?

提前谢谢您!

$(document).ready(function() {
  $("nav li:has(ul)").hover(function() {
    $(this).find("ul").slideDown();
  }, function() {
    $(this).find("ul").hide();
  });
});
.navUnordList {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.navListElmnt {
  float: left;
  position: right;
  font-family: Verdana, sans-serif;
  font-size: 75%;
}

.navListElmntVert {
  list-style: none;
  text-align: left;
  font-size: 0.8em;
  margin: 0;
  margin-bottom: 0.1em;
  margin-top: 0.1em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<nav>
  <ul class="navUnordList">
    <li class="navListElmnt"><a href="page2.html">Example</a></li>
    <li class="navListElmnt"><a href="page3.html">Diet</a>
      <ul class="navUnordList">
        <li class="navListElmntVert"><a href="page3-1.html">Food and Drink </li>
        <li class="navListElmntVert"><a href="page3-2.html">Balanced Diet</li>
        <li class="navListElmntVert"><a href="page3-3.html">Nutrition</li>
      </ul>
    </li>
  </ul>
</nav>

最佳答案

只需在子菜单中添加一个 display: none 即可:

.navListElmnt > .navUnordList {
  display:none;
}

如果我可以表达个人观点的话,这些类名很糟糕,难以记住和书写。

$(document).ready(


	function()
{

	$("nav li:has(ul)").hover(
		function()
		{

		$(this).find("ul").slideDown();
		}
		,
		function()
		{
		$(this).find("ul").hide();
		});
}
);
.navUnordList{
  list-style:none;
  margin:0;
  padding:0;
  overflow:hidden;
}
.navListElmnt{
  float:left;
  position:right;
  font-family: Verdana, sans-serif;
  font-size: 75%;

}
.navListElmntVert{
  list-style: none;
  text-align: left;
  font-size: 0.8em;
  margin: 0;
  margin-bottom: 0.1em;
  margin-top:0.1em;
}
.navListElmnt > .navUnordList {
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<nav>
      <ul class="navUnordList">

        <li class="navListElmnt"><a href="page2.html">Example</a></li>
        <li class="navListElmnt"><a href="page3.html">Diet</a>
            <ul class="navUnordList">
                <li class="navListElmntVert"><a href="page3-1.html">Food and Drink </li>
                <li class="navListElmntVert"><a href="page3-2.html">Balanced Diet</li>
                <li class="navListElmntVert"><a href="page3-3.html">Nutrition</li>
            </ul>
        </li>
      
      </ul>
    </nav>

关于javascript - 隐藏的嵌套导航在悬停之前显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43496533/

相关文章:

javascript - 如何从 Mongoose 顺序检索数据?

javascript - 如何使用 Jade 模板从 Redis 数据库中删除 html 列表项?

jquery根据图像大小设置div容器的高度和宽度

javascript - 在 Django 中将输出从 javascript 发送到 html DIV

php - 登录 cookie 不在页面刷新时保存

javascript - jquery UI sortable检测上下轴

javascript - 如何使用 javascript 从另一个页面编辑表格内容

jquery - 在变量上使用 jQuery 而不是在 DOM 上?

jquery - HTML、CSS、JQuery DataTable 结果为无效的 Bootstrap 格式

javascript - 当类型数字字段被字段旁边的箭头修改时的 jQuery 事件