javascript - 网页下拉菜单

标签 javascript jquery html css

为了练习,我创建了一个简单的网站。我正在尝试为导航中的元素创建一个下拉菜单,但是当我运行该网站时,它没有显示任何内容。所有文件都保存在桌面上。

这是我的 html(main.html) 和 jquery(jquery-1.3.2.min.js) 的代码:

function mainmenu() {
  $(" #nav ul ").css({
    display: "none"
  });

  $(" #nav li ").hover(function() {
    $(this).find('ul:first').css({
      visibility: "visible",
      display: "none"
    }).show(400);
  }, function() {
    $(this).find('ul:first').css({
      visibility: "hidden"
    });
  });
}

$(document).ready(function() {
  mainmenu();
});
body {
  font-family: 'lucida grande', Tahoma, Verdana, Arial, sans-serif;
  background-color: #e9e9e9;
}
#wrapper {
  width: 1080px;
  margin: 0 auto;
  padding: 10px;
  border: 5px solid #dedede;
  background-color: #fff;
}
#banner {
  height: 200px;
  border: 3px solid #E3E3E3;
  background-color: blue;
  background-repeat: no-repeat;
  background-size: cover;
}
#navigation {
  height: 60px;
  border: 3px solid #E3E3E3;
  margin-top: 20px;
  margin-left: 5px;
  margin-right: 5px;
  background-color: red;
  text-shadow: 0.1em 0.1em #333;
}
#nav {
  list-style: none;
}
#nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  width: auto;
  display: none;
}
#nav li {
  font-size: 24px;
  float: left;
  position: relative;
  width: 180px;
  height: 50px;
}
#nav li ul li {
  background-color: green;
  background-repeat: no-repeat;
  background-size: cover;
  border: 3px solid #E3E3E3;
  padding-left: 10px;
}
#nav a:link,
#nav a:active,
#nav a:visited {
  display: block;
  color: #fff;
  text-decoration: none;
}
#nav a:hover {
  color: lightblue;
}
#content_area {
  float: left;
  width: 750px;
  height: 382px;
  margin: 20px 0px 20px 5px;
  padding: 10px;
  border: 3px solid #E3E3E3;
}
#sidebar {
  float: right;
  width: 250px;
  height: 402px;
  margin: 20px 10px 20px 10px;
  border: 3px solid #E3E3E3;
  background-color: yellow;
}
#footer {
  clear: both;
  width: auto;
  height: 40px;
  margin-top: 20px;
  background-color: blue;
  text-shadow: 0.1em 0.1em #333;
  color: #fff;
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="wrapper">
  <div id="banner">

  </div>

  <div id="navigation">
    <ul id="nav">
      <li><a href="#">Home</a>
      </li>
      <li><a href="#">Items</a>
      </li>
      <ul>
        <li><a href="#">T-Shirt</a>
        </li>
        <li><a href="#">Pants</a>
        </li>
        <li><a href="#">Accessories</a>
        </li>
      </ul>
      <li><a href="#">Shop</a>
      </li>
      <li><a href="#">About</a>
      </li>
    </ul>
  </div>

  <div id="content_area">


  </div>

  <div id="sidebar">

  </div>

  <div id="footer">
    <p>All rights reserved</p>
  </div>
</div>

最佳答案

是的,错误在您的代码中。您正在尝试以 li 中的第一个 ul 为目标,但在您的代码中,您的 ul 是独立的/在 li 之外。

<li><a href="#">Items</a>
  </li>
  <ul>
    <li><a href="#">T-Shirt</a>
    </li>
    <li><a href="#">Pants</a>
    </li>
    <li><a href="#">Accessories</a>
    </li>
  </ul>

看到 ul 在 Items li 的外面,把它放在里面,它会像这样工作。

<li><a href="#">Items</a>      
  <ul>
    <li><a href="#">T-Shirt</a>
    </li>
    <li><a href="#">Pants</a>
    </li>
    <li><a href="#">Accessories</a>
    </li>
  </ul>
  </li>

您直接将 ul 放入 ul 中。

关于javascript - 网页下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557878/

相关文章:

html - YouTube/Vimeos 能否调整其高度以适应宽度 (CSS)?

javascript - Chrome 阻止了我的地理位置跟踪

javascript - HTML5 Canvas - 使用 setTransform 滚动 map (由二维数组制成)

javascript - 如何从元素中删除以某些字符结尾的类

javascript - 在触摸屏上实现 <abbr> 类型功能的最简洁方法?

javascript - 即javascript表单提交文件输入

javascript - 如何在循环中实现Jquery复选框全选/取消全选功能?

javascript - 通过 Ajax 在 Laravel 上动态依赖选择框,但通过不同的表获取数据,如何?

javascript - 将十进制数的输出限制为特定精度

javascript - 展平一个 javascript 对象以作为查询字符串传递