当前位置:首页 > jquery

jquery二级菜单

2026-04-08 06:28:42jquery

jQuery 实现二级菜单的方法

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

jquery二级菜单

基于 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
分享给朋友:

相关文章

vue菜单实现

vue菜单实现

Vue 菜单实现方法 使用 Element UI 的菜单组件 Element UI 提供了现成的菜单组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用 el-menu 相关组件。…

css菜单制作

css菜单制作

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

jquery 图表

jquery 图表

jQuery 图表库推荐 jQuery 本身不直接提供图表功能,但可以通过插件或集成其他库实现图表绘制。以下是几种常用的 jQuery 图表解决方案: Chart.js 集成 Chart.js 是一…

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

jquery删除

jquery删除

jQuery 删除元素的方法 使用 jQuery 删除 DOM 元素有多种方式,可以根据需求选择合适的方法。 remove() 方法remove() 方法会删除选中的元素及其子元素,同时移除元素上的…

jquery导航

jquery导航

jQuery 导航实现方法 使用 jQuery 实现导航菜单 jQuery 提供了多种方法来实现导航菜单的交互效果,如滑动、淡入淡出或高亮显示当前页面。以下是一个简单的导航菜单实现示例: <…