当前位置:首页 > jquery

jquery二级菜单

2026-04-08 06:28:42jquery

jquery二级菜单

jquery二级菜单

jQuery 实现二级菜单的方法

通过 jQuery 实现二级菜单通常涉及事件监听(如 hoverclick)和 DOM 操作(如 show()/hide()slideToggle())。以下是两种常见实现方式:

基于 hover 事件的二级菜单

<ul class="main-menu">
  <li>菜单1
    <ul class="sub-menu">
      <li>子菜单1</li>
      <li>子菜单2</li>
    </ul>
  </li>
  <li>菜单2</li>
</ul>
$(document).ready(function() {
  $('.main-menu li').hover(
    function() {
      $(this).find('.sub-menu').stop(true, true).slideDown(200);
    },
    function() {
      $(this).find('.sub-menu').stop(true, true).slideUp(200);
    }
  );
});
  • 说明hover 包含鼠标进入和离开两个回调函数,stop(true, true) 用于防止动画队列堆积。

基于 click 事件的二级菜单(适合移动端)

$(document).ready(function() {
  $('.main-menu > li').click(function(e) {
    e.stopPropagation();
    $(this).find('.sub-menu').slideToggle(200);
    $(this).siblings().find('.sub-menu').slideUp(200);
  });
});
  • 说明e.stopPropagation() 阻止事件冒泡,slideToggle 切换显示/隐藏状态,同时关闭其他已展开的子菜单。

CSS 配合增强体验

.sub-menu {
  display: none; /* 默认隐藏 */
  position: absolute;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.main-menu > li {
  position: relative; /* 为子菜单定位提供参照 */
}

注意事项

  1. 性能优化:事件委托(如 $('.main-menu').on('click', 'li', fn))适合动态生成的菜单。
  2. 兼容性:移动端建议使用 click 而非 hover
  3. 无障碍:为菜单添加 aria-expanded 属性以支持屏幕阅读器。

如需更复杂的交互(如延迟关闭),可结合 setTimeout 实现。实际效果可通过调整动画参数(如 slideDown(400))或使用 CSS 过渡替代。

标签: 菜单jquery
分享给朋友:

相关文章

css菜单制作

css菜单制作

CSS 菜单制作方法 水平导航菜单 使用 display: inline-block 或 flexbox 可以轻松创建水平导航菜单。以下是一个基本示例: <nav> <ul c…

jquery 选择

jquery 选择

jQuery 选择器基础 jQuery 选择器基于 CSS 选择器语法,用于快速定位和操作 DOM 元素。核心语法为 $() 或 jQuery(),括号内传入选择器表达式。 // 选择所有 <…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

jquery判断

jquery判断

jQuery 判断元素存在与属性方法 使用 jQuery 判断元素是否存在可通过检查选择器返回的 jQuery 对象长度: if ($('#elementId').length > 0) {…

下载jquery

下载jquery

下载 jQuery 的方法 官方网站下载 访问 jQuery 的官方网站 https://jquery.com,点击页面上的“Download”按钮。选择压缩版(minified)或未压缩版(unco…

jquery加载

jquery加载

jQuery 加载方法 使用 CDN 加载 jQuery 推荐通过公共 CDN(如 Google、Microsoft 或 jQuery 官方)加载,速度快且可能已被浏览器缓存。 <…