jQuery 树型菜单完整代码

 jQuery 树型菜单完整代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"><title>jQuery树形菜单</title><script src="./js/jquery-3.6.0.js"></script><style type="text/css">/* 初始化页面 */* {margin: 0;padding: 0;box-sizing: border-box;}/* 设置背景页面 */body {width: 100%;min-height: 100vh;background-color: #029688;display: flex;justify-content: center;}/* 设置树形菜单宽度 */.tree {width: 60%;}/* 设置树形菜单标题 */.tree h1 {width: 100%;height: 60px;text-align: center;line-height: 60px;color: #F7F29B;font-family: "楷体";letter-spacing: 3px;}/* 设置标题下边的水平线 */.tree i{display: block;width: 100%;height: 1px;background-color: #D7DBDB;position: relative;}/* 设置标题水平线中心的菱形 */.tree i::before{content: "";width: 7px;height: 7px;transform: rotate(45deg);background-color: #D7DBDB;position: absolute;top: -3px;left: 50%;margin-left: -3.5px;}/* 设置树形菜单列表 */.tree-list{width: 100%;margin-top: 20px;}/* 设置列表缩进效果 */.tree-list div{width: 100%;padding-left: 40px;position: relative;display: none;}/* 设置列表名称 */.tree-list p{display: flex;justify-content: space-between;width: 100%;height: 40px;line-height: 40px;color: #F7FBFB;}/* 设置箭头图片 */.tree-list img{width: 14px;height: 14px;margin: 13px;transition: all 0.3s;}/* 设置箭头图片旋转效果 */.tree-list .active{transform: rotate(180deg);}/* 设置鼠标悬浮样式 */.tree-list p:hover{background-color: rgba(80, 220, 220, 0.2);}/* 设置列表分类水平线 */.tree-list>em{display: block;width: 100%;height: 2px;background-color: #D7DBDB;margin: 5px 0;}</style></head><body><div class="tree"><h1>数据分类</h1><i></i><div class="tree-list"></div></div><script type="text/javascript">// 设置变量用于存储拼接的标签字符串let content = "";// 请求本地 json 文件$.ajax({type:"GET",url:"./js/data.json",success:function(res){console.log(res);// 调用数据拼接函数render(res);// 将字符串输出到页面中$(".tree-list").html(content)}})// 数据拼接函数 将数据拼接成标签字符串function render(arr){for(let item of arr){if(item.child != undefined && item.child.length > 0){content += `<p onclick="cut(event)"><span onclick="skip()">${item.name}</span><img src="img/arrows.png" /></p><div>`;render(item.child);content += `</div><em></em>`;}else{content += `<p><span onclick="skip()">${item.name}</span></p><em></em>`;}}}// 列表显示隐藏事件function cut(e){e = e || window.event;let targets = e.target || e.srcElemet;$(targets).next("div").toggle(300);$(targets).find("img").toggleClass("active");}// 列表跳转事件function skip(){location.href = "./index.html";}</script></body>
</html>

 JSON 假数据文件:

[{"name":"一级菜单1","child":[{"name":"二级菜单1-1","child":[]},{"name":"二级菜单1-2","child":[{"name":"三级菜单1-2-1","child":[]},{"name":"三级菜单1-2-2","child":[]}]},{"name":"二级菜单1-3","child":[]},{"name":"二级菜单1-4","child":[]},{"name":"二级菜单1-5","child":[{"name":"三级菜单1-5-1","child":[]},{"name":"三级菜单1-5-2","child":[]}]}]},{"name":"一级菜单2","child":[{"name":"二级菜单2-1","child":[{"name":"三级菜单2-1-1","child":[]},{"name":"三级菜单2-1-2","child":[]}]},{"name":"二级菜单2-2","child":[]},{"name":"二级菜单2-3","child":[]}]},{"name":"一级菜单3","child":[]},{"name":"一级菜单4","child":[{"name":"二级菜单4-1","child":[]},{"name":"二级菜单4-2","child":[{"name":"三级菜单4-2-1","child":[]},{"name":"三级菜单4-2-2","child":[]},{"name":"三级菜单4-2-3","child":[]}]},{"name":"二级菜单4-3","child":[]},{"name":"二级菜单4-4","child":[]},{"name":"二级菜单4-5","child":[]}]},{"name":"一级菜单5","child":[]},{"name":"一级菜单6","child":[{"name":"二级菜单6-1","child":[{"name":"三级菜单6-1-1","child":[]},{"name":"三级菜单6-1-2","child":[]},{"name":"三级菜单6-1-3","child":[]}]},{"name":"二级菜单6-2","child":[]},{"name":"二级菜单6-3","child":[]}]},{"name":"一级菜单7","child":[{"name":"二级菜单7-1","child":[]},{"name":"二级菜单7-2","child":[]}]},{"name":"一级菜单8","child":[]},{"name":"一级菜单9","child":[]}
]

原创作者:吴小糖

创作时间:2023.11.7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity Text文本首行缩进两个字符的方法

Text文本首行缩进两个字符的方法比较简单。通过代码把"\u3000\u3000"加到文本字符串前面即可。 参考如下代码&#xff1a; TMPtext1.text "\u3000\u3000" "这是一段有首行缩进的文本内容。\n这是第二行"; 运行效果如下图所示&#xff1a; 虽…

串口通信原理及应用

Content 1. 前言介绍2. 连接方式3. 数据帧格式4. 代码编写 1. 前言介绍 串口通信是一种设备间非常常用的串行接口&#xff0c;以比特位的形式发送或接收数据&#xff0c;由于成本很低&#xff0c;容易使用&#xff0c;工程师经常使用这种方式来调试 MCU。 串口通信应用广泛&a…

常见面试题-MySQL软删除以及索引结构

为什么 mysql 删了行记录&#xff0c;反而磁盘空间没有减少&#xff1f; 答&#xff1a; 在 mysql 中&#xff0c;当使用 delete 删除数据时&#xff0c;mysql 会将删除的数据标记为已删除&#xff0c;但是并不去磁盘上真正进行删除&#xff0c;而是在需要使用这片存储空间时…

浏览器里设置代理的作用

一、代理服务器常识 1、 代理服务器的定义&#xff1a; 代理服务器是介于浏览器和Web服务器之间的一台服务器&#xff0c;当你通过代理服务器上网浏览时&#xff0c;浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求&#xff0c;由代理服务器来取回浏览器所需要…

指针——C语言初阶

一.指针基本概念&#xff1a; 指针是内存中一个最小单元的编号&#xff0c;也就是地址平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放地址的变量 #include<stdio.h> int main() {int a 0;//a是整型变量&#xff0c;占用四个字节的内存空间&a…

C++ this 指针 面试

this 指针 this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。 当对一个对象调用成员函数时&#xff0c;编译程序先将对象的地址赋给 this 指针&#xff0c;然后调用成员函数&#xff0c;每次成员函数存取数据成员时&#xff0c;都隐…

数据结构刷题

空间复杂度&#xff1a;临时开辟的空间、空间是可以重复利用的 递归为O(n) 时间复杂度&#xff1a;程序执行次数 消失的数字 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路1&#xff1a;利用连续的特点求等差和然后减去所有元素得到的就是消…

LeetCode算法练习top100:(3)矩阵

矩阵 package top100.top矩阵;import java.util.ArrayList; import java.util.List;public class TOP {//73. 矩阵置零//额外空间将有0的行列存储下来&#xff0c;再置0public void setZeroes(int[][] matrix) {int m matrix.length;int n matrix[0].length;boolean[] row …

【简单搭建】WhatsApp筛选Ws等资源卡密售卖平台源码

WhatsApp筛选Ws/Tg外贸营销Supplier推特号/FB号/谷歌号/小火箭Ws/Channel社交账号 1.后台上传各种账号前台可以下单购买 2.号码可以进行刷选查询 3.各种海外社交软件可以购买 4.可以设置分销我的下级 5.对接ustd接口 企业猫在11/16的时候搭建了下&#xff0c;可以搭建出来…

51单片机应用从零开始(六)·逻辑运算

51单片机应用从零开始&#xff08;一&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;二&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;三&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;四&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;…

2023年亚太杯数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 赛题思路算法介绍FP树表示法构建FP树实现代码 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#…

C/C++中,char类型到底是有符号还是无符号的

对于这个问题&#xff0c;有些功底不深的同学可能会回答“char 类型是有符号类型”&#xff0c;理由是省略 signed 是可以的。 而正确答案是&#xff1a;C99标准并未指定 char 类型是有符号还是无符号&#xff0c;这取决实现&#xff08;编译器和硬件平台&#xff09;。具体可…

Linux命令——ss

ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息&#xff0c;它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息&#xff0c;而且比 netstat 更快。 格式 ss [参数] 常用参数&#xff1a; -n 不解析服务…

操作系统:输入输出管理(二)磁盘调度算法

一战成硕 5.3 磁盘固态硬盘5.3.1 磁盘5.3.2 磁盘的管理5.3.3 磁盘调度算法 5.3 磁盘固态硬盘 5.3.1 磁盘 磁盘是表面涂有磁性物质的物理盘片&#xff0c;通过一个称为磁头的导体线圈从磁盘存取数据。在读写操作中&#xff0c;磁头固定&#xff0c;磁盘在下面高速旋转。磁盘盘…

第四代智能井盖传感器,万宾科技助力城市安全

在迈向更为智能化、相互联系更为紧密的城市发展过程中&#xff0c;智能创新产品无疑扮演了一种重要的角色。智能井盖传感器作为新型科学技术产物&#xff0c;不仅解决传统井盖管理难的问题&#xff0c;也让城市变得更加安全美好&#xff0c;是城市生命线的一层重要保障。这些平…

Axelar、J.P.Morgan Onyx、Apollo 完成概念验证,向跨区块链自动化投资领域探索

J.P.Morgan Onyx、Apollo、Axelar、Oasis Pro 以及 Provenance Block Chain 展开合作&#xff0c;共同进行互操作性概念验证&#xff08;Proof-of-Concept&#xff0c;PoC)。 新加坡 — Axelar Inc.、Oasis Pro 、Provenance Blockchain 与 J.P.Morgan Onyx 以及 Apollo 通过新…

人工智能引领环境保护的新浪潮:技术应用及其影响

在全球范围内&#xff0c;环境保护已经成为一个迫切的话题。随着人工智能技术的发展&#xff0c;它开始在环境保护领域扮演越来越重要的角色。AI不仅能够帮助更有效地监测环境变化&#xff0c;还能提出解决方案来应对环境问题。 污染监测与控制&#xff1a; AI系统可以分析来自…

面试求职者

顾x文 SQLite3数据的使用实现了多线程UDP数据收发功能Qt多线程的同步和异步熟悉GDB的调试了解Mysql的性能优化熟悉常见算法&#xff1a;快速排序、希尔排序、归并排序基于Nginx C Mysql Python ICE开发熟练Boost库负责搭建后台服务端&#xff0c;使用Nginx展示前端界面&am…

hadoop 大数据环境配置 配置jdk, hadoop环境变量 配置centos环境变量 hadoop(五)

1. 遗漏一步配置系统环境变量&#xff0c;下面是步骤&#xff0c;别忘输入更新系统环境命令 2. 将下载好得压缩包上传至服务器&#xff1a; /opt/module 解压缩文件存放地址 /opt/software 压缩包地址 3. 配置环境变量&#xff1a; 在/etc/profile.d 文件夹下创建shell文件 …

Python---列表 集合 字典 推导式(本文以 列表 为主)

推导式&#xff1a; 推导式comprehensions&#xff08;又称解析式&#xff09;&#xff0c;是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列&#xff08;一个有规律的列表或控制一个有规律列表&#xff09;的结构体。 共有三种推导&#xff1a;列表…