JQuery实现折叠式菜单的详细代码

下面是 JQuery 实现折叠式菜单的详细攻略:

1. HTML 结构

首先需要在 HTML 中创建一些元素来组成折叠式菜单,例如:

<div class="menu">
  <div class="menu-item">
    <div class="menu-title">选项1</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项2</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项3</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
</div>

其中,.menu 是整个折叠式菜单的容器,.menu-item 表示每一个选项,.menu-title 是选项的标题,.submenu 是子菜单的容器,子菜单默认是隐藏的。

2. CSS 样式

为了让折叠式菜单看起来更好看,可以添加一些 CSS 样式,例如:

.menu {
  border: 1px solid #ccc;
  background: #f6f6f6;
  padding: 10px;
}

.menu-item {
  margin-bottom: 10px;
}

.menu-title {
  color: #333;
  font-weight: bold;
  cursor: pointer;
}

.submenu {
  display: none;
  margin: 0;
  padding: 0;
}

.submenu li {
  list-style: none;
  background: #f6f6f6;
  padding: 5px 10px;
  cursor: pointer;
}

.submenu li:hover {
  background: #e3e3e3;
}

3. JQuery 代码

最后是关键的 JQuery 代码部分。为了实现折叠效果,需要使用 .slideToggle() 函数,在标题上添加点击事件,当点击时子菜单就会展开或收起。

$(document).ready(function() {
  $('.menu-title').click(function() {
    $(this).siblings('.submenu').slideToggle();
  });
});

上述代码中,$(document).ready() 函数用来确保页面加载完后执行代码,.menu-title 表示选项的标题,$(this).siblings('.submenu') 表示选项的子菜单,.slideToggle() 函数用来展开或收起子菜单。

这里再展示两个示例:

示例一

页面上只有一个折叠式菜单。HTML 结构如下:

<div class="menu">
  <div class="menu-item">
    <div class="menu-title">选项1</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
</div>

这时只需要使用上面的 JQuery 代码就能够实现折叠效果了。

示例二

页面上有多个折叠式菜单,每个菜单都有自己的标题和子菜单。HTML 结构如下:

<div class="menu">
  <div class="menu-item">
    <div class="menu-title">选项1</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项2</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项3</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
</div>
<div class="menu">
  <div class="menu-item">
    <div class="menu-title">选项4</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项5</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
  <div class="menu-item">
    <div class="menu-title">选项6</div>
    <ul class="submenu">
      <li>子选项1</li>
      <li>子选项2</li>
      <li>子选项3</li>
    </ul>
  </div>
</div>

这时需要对 JQuery 代码做一些修改,使得它能够针对每一个菜单都有效。代码如下:

$(document).ready(function() {
  $('.menu-title').click(function() {
    $(this).closest('.menu-item').find('.submenu').slideToggle();
  });
});

其中,$(this).closest('.menu-item') 表示当前标题所在的选项,.find('.submenu') 表示选项的子菜单。

这样就实现了多个折叠式菜单的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JQuery实现折叠式菜单的详细代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 如何用jQuery提交表单中的Enter按钮

    当用户在HTML表单中填写完成后,希望能通过按下Enter来提交表单而不是点击提交按钮。在这种情况下,我们可以使用jQuery来实现这个功能。 监听form表单中的按键事件 首先,我们需要监听用户在表单中按下键盘上的“Enter”这个按键事件。在键盘事件中,Enter键的 keycode 是13。我们可以使用 jQuery 的 keydown() 方法来监听…

    jquery 2023年5月12日
    00
  • Js类的静态方法与实例方法区分及jQuery拓展的两种方法

    Js类的静态方法与实例方法区分及jQuery拓展的两种方法是面向对象编程中的基础知识,这里我们来详细讲解一下。 静态方法和实例方法的区别 在JavaScript中,类的静态方法和实例方法的区别在于调用的方式和使用的场景。 静态方法是类的方法,需要通过类名直接调用,不依赖于类的实例。静态方法通常用于实现类级别的工具方法或者计算某些和类本身相关的数据。 示例代码…

    jquery 2023年5月28日
    00
  • jquery attr()设置和获取属性值实例教程

    下面是针对“jquery attr()设置和获取属性值实例教程”的详细攻略: 1. 什么是 attr() 方法 attr() 方法是 jQuery 提供的一个方法,它用于设置或获取指定元素的属性值。我们可以使用 attr() 方法来操作元素的任何属性,例如,title、class、href 等。 2. 获取元素的属性值 attr() 方法可以用来获取元素的属…

    jquery 2023年5月28日
    00
  • jQuery UI Datepicker buttonImageOnly选项

    jQuery UI的日期选择器小部件提供了许多选项,可以自定义日期选择器的外观和行为。其中,buttonImageOnly选项用于指定日期选择器按钮是否只显示图像。本文将详细介绍buttonImageOnly选项的语法和用法,并提供两个示例说明。 语法 以下是buttonImageOnly选项的基本语法: $(selector).datepicker({ b…

    jquery 2023年5月9日
    00
  • jQuery中常用的遍历函数用法实例总结

    jQuery中常用的遍历函数用法实例总结可以分为以下几部分: 1. 什么是jQuery的遍历函数 jQuery中的遍历函数是指用于在DOM树结构中查找、筛选页面元素的方法,包括基础的选择器以及过滤器。 2. jQuery常用的遍历函数 2.1 基础选择器 基础选择器是用于选择页面元素的函数,常用的有以下几种: //选择所有元素 $("*"…

    jquery 2023年5月27日
    00
  • 在jQuery中获取隐藏元素的高度

    想要在jQuery中获取隐藏元素的高度,可以分为两种情况:一种是元素的display属性为none,另一种是元素的visibility属性为hidden。接下来我将为你详细讲解这两种情况的解决方法。 获取display:none的元素高度 当元素的display属性为none时,需要先将该元素显示出来,再获取其高度,最后再将该元素隐藏起来。代码示例如下: /…

    jquery 2023年5月13日
    00
  • 使用jQuery Ajax功能时需要注意的一个问题(内存溢出)

    当使用jQuery Ajax功能时,可能会遇到一个内存溢出的问题,这可能会导致浏览器崩溃或者运行缓慢。这个问题通常由于在不断地向DOM中添加新元素而导致的。我们可以通过以下几种方式来避免内存溢出问题。 1. 使用detach()方法 在向DOM中添加新元素之前,先使用jQuery的detach()方法将旧元素从DOM中移除并保存至变量中,再向DOM中添加新元…

    jquery 2023年5月28日
    00
  • JQuery插件tablesorter表格排序实现过程解析

    JQuery插件tablesorter表格排序实现过程解析 简介 tablesorter是一个基于jQuery的表格插件,可以为表格添加排序、分页、高亮、过滤等功能。tablesorter支持多个排序规则,可以对不同列进行不同的排序。本文将详细讲解tablesorter的实现过程。 实现过程 引入jQuery和tablesorter插件 在html中需要引入…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部