Jquery 菜单插件之 Superfish jQuery菜单

2023-10-30

大家如果想了解"Superfish jQuery菜单"插件,可以查看我发布的一篇“关于JQuery 菜单插件”,这里已经告诉我们该jQuery菜单插件的相关优势和下载地址,在下载中包含基础的Demo,初始者可以依次入门。


接下来,我们进入我们开发重点:

第一步:首先,查看我们基于Superfish jQuery菜单插件实现的效果。


第二步:查看静态HTML源代码,是如何实现该功能的(我们这里只是分析Superfish jQuery菜单插件HTML构成样式)。

<ul class="sf-menu" id="example" style="line-height:10px;margin-left:8px;">
<li class="current" >
<a href="#">CEO办公室</a>
<ul>
<li>
<a href="#">财务部1</a>
<ul>
<li>
<a href="#">财务部门2</a>
<ul>
<li><a href="#">测试部门</a></li>

</ul>
</li>

       </ul>
</li>
<li>
<a href="#">测试部门一</a>

</li>
<li>
<a href="#">测试部门2</a>

</li>
<li>
<a href="#">测试部门五</a>

</li>

</ul>
</li>
</ul>

通过上面静态HTML数据信息,我们可以很容易看出:ul标签和li标签,构成我们今天学习的菜单控件(Superfish jQuery),如何引用Superfish jQuery菜单插件的相关样式和js,请朋友们参考自己下载的Demo案例。

第三步:要实现第三方jquery 菜单插件与自己开发的项目整合起来,重点是要查看后台是如何返回数据,前台又是如何处理?下面这幅截图是我负责的系统后台返回数据样式(已经经过格式化)。[
    {
        "id": "14efbeaab57308f49ce1c1a4244b4009",
        "name": "华星光电",
        "subNode": [
            {
                "id": "14efbedf53d206203ed19ea44b098e83",
                "name": "财务部1",
                "subNode": [
                    {
                        "id": "14efbee399cdba581fa197744ab9f984",
                        "name": "财务部2",
                        "subNode": [
                            {
                                "id": "14efbee6bf2c9b3b913a21f4cf1a03e4",
                                "name": "财务部3",
                                "subNode": [
                                    {
                                        "id": "14efbee9311ce09a33a824e4691aee92",
                                        "name": "财务部4",
                                        "subNode": []
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "14f63b0288a3237a8e5820944d9bf326",
                        "name": "测试部门",
                        "subNode": []
                    }
                ]
            },
            {
                "id": "14f63b3954c4f7d53c992c54edaaa1da",
                "name": "测试部门一",
                "subNode": []
            },
            {
                "id": "14f63b4eb78b5faf65a4df74996894ca",
                "name": "测试部门2",
                "subNode": []
            },
            {
                "id": "14f63b51db6b5f39ffa3df249939cf64",
                "name": "测试部门五",
                "subNode": []
            }
        ]
    },
    {
        "id": "14efbee6bf2c9b3b913a21f4cf1a03e4 ",
        "name": "财务部3",
        "subNode": [
            {
                "id": "14efbee9311ce09a33a824e4691aee92",
                "name": "财务部4",
                "subNode": []
            }
        ]
    }
]

第四步:我们已经拿到了后台数据,接下来就是本篇文章的学习重点:(javascript 函数迭代、javascript JSONArray 数据格式解析和javascript 拼接HTML)

函数迭代:

//获取部门相关信息
function getDepart(){
var url="${kmsContextPath}kms/multidoc/kms_multidoc_knowledge/kmsMultidocKnowledge.do?method=homeSearchDept";
$.get(url, function(data,state){
var jsonarray=eval(data);
for(var i=0;i<jsonarray.length;i++){
var jsonObject=jsonarray[i];
 
var html="";
html+="<ul class='sf-menu' style='line-height:10px;margin-left:8px;' id='"+jsonObject.id+"'>";
html+="<li class='current'>";
html+="<a href='#' οnclick='searchCase(\"org\",\""+jsonObject.id+"\",\""+jsonObject.name+"\")'>"+jsonObject.name+"</a>";

//判断当前部门是否存在子节点
var subNode=jsonObject.subNode;
if(subNode.length!=0){
html+="<ul>";
var content=getSubDepart(subNode);
html+=content;
html+="</ul>";
}
html+="</li>";
html+="</ul>";

$("#department").append(html);
$("#"+jsonObject.id+"").superfish({});
 

}  
});  
}
//部门数据迭代
function getSubDepart(jsonObject){
var content=""
var jsonArray=eval(jsonObject);
for(var i=0;i<jsonArray.length;i++){
var json=jsonArray[i];

content+="<li>";
content+="<a href='#' οnclick='searchCase(\"org\",\""+json.id+"\",\""+json.name+"\")'>"+json.name+"</a>";
//判断是否存在子节点
var subDepart=json.subNode;
if(subDepart.length!=0){
content+="<ul>";
var html= getSubDepart(subDepart);
content+=html;
content+="</ul>";
}
content+="</li>";
}
return content;
}

 在页面初始化时,调用geDepart()函数即可。 


今天文章就透露到这里,今天这篇文章讲解:第三方JQuery插件(Superfish jQuery)和javascript函数迭代。

其他的(1)、JSONArray数据解析、(2)javascript拼接HTML都只是简单讲解,如果有兴趣的码农,可以自己百度或Google,实在不行就看我接下来准备发表的文章。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery 菜单插件之 Superfish jQuery菜单 的相关文章

  • 带你详细了解ADSS光缆

    ADSS 全介质自承式光缆 光缆是一种自支撑架空光缆 专为架空安装和部署而设计 适用于各种户外应用 本文将提供ADSS光缆的一些知识 什么是ADSS光缆 ADSS 光缆是一种光缆 其强度足以在结构之间支撑自身 而无需使用导电金属元件 该光缆
  • 创建qml自定义视频源(Qt5.15.2+设备帧)

    前言 若是看过笔者之前的文档 应该会注意到 笔者显示自定义视频 使用的是QQuickImageProvider和Image类型实现 本次笔者记录另一种显示方式 创建视频源 然后使用VideoOutput显示 因为Qt5和Qt6多媒体模块发生
  • QML自定义模块及qmldir的使用

    前言 在开发QtQuick项目中 当项目文件很多的情况下 可能会分成多级文件夹来进行分类 还有一些通用类型文件 如公共组件 通用配置等等 需要在各个不同的文件中进行调用 这种情况下 一种方式是在当前需要引用的文件中通过关键字import 加
  • TCP-三次握手

    文章目录 三次握手 简单示意图 详细分析 一些思考 为什么是三次握手 SYN 攻击 什么是SYN 攻击 如何防止SYN 攻击 数据包丢失了该怎么办 初始序列号为什么随机产生 为什么 SYN 段不携带数据却要消耗一个序列号呢 每次握手可以确定
  • 数据库驱动和数据库连接(MySQL)

    数据库驱动和数据库连接 MySQL 一 数据库驱动 什么是数据库驱动 二 数据库连接 jdbc连接的方式以及区别 1 通过DriverManager 驱动管理类 的静态方法获取 2 通过DataSource 数据源 对象获取 3 两种创建连
  • SpringBoot常用注解和原理简介说明

    转自 SpringBoot常用注解和原理简介说明 下文笔者讲述SpringBoot常见注解的简介说明 如下所示 启动注解 SpringBootApplication Target ElementType TYPE Retention Ret

随机推荐

  • C++——QT之信号与槽

    通俗的理解信号与槽 信号与槽 Signal Slot 是 Qt 编程的基础 也是 Qt 的一大创新 因为有了信号与槽的编程机制 在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单 信号 Signal 就是在特定情况下被发射的事件 例
  • 设计模式:快照模式

    快照模式也叫做备忘录模式 但是我觉得如果是了解快照的话 我觉得比备忘录更形象一点 毕竟现在快照有各种 有页面快照 有系统快照等 相当于是一个备份 备忘录其实也是备份的意思 我觉得快照更贴切一点现在的描述 快照模式是一种行为模式 行为模式可以
  • Python利用Opencv读取图片

    首先 要先确认PyCharm里面有没有装opencv python 如果没有 点右侧 号搜索添加 确认有opencv之后 便可以使用cv2读取图片了 import cv2 image path C Desktop image jpg 图片路
  • 数字化时代-23:中国人工智能企业100强排行榜

    综合实力TOP100 成长能力TOP100 创新能力TOP100
  • React组件卸载、路由跳转、页面关闭(刷新)之前进行提示

    React组件卸载生命周期 路由跳转和页面关闭三者看起来有些类似的地方 比如都是当前组件即将从视口消失 但实际上所触发的事件均不相同 以一个实际案例出发 某单页应用的 文章编辑页用户正在编辑文章 此时尚未保存 当用户不小心要跳转到另外一个路
  • SpringBoot——内置数据源

    简单介绍 在之前我们介绍SpringBoot的数据层解决方案的时候 曾说到过在数据层是由数据源 持久化技术和数据库组成的 之前我们一直使用的都是Druid MyBatis MySQL组合的解决方案 这三种方案在之前我们都介绍过如何整合以及基
  • 进阶:变量 1.系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面。 注意:(1) 全局变量需要添加global关键字 (2) 会话变量需要添加session键字 (3)

    进阶 变量 1 系统变量 说明 变量由系统定义 不是用户定义 属于服务器层面 注意 1 全局变量需要添加global关键字 2 会话变量需要添加session关键字 3 如果不写 默认session会话级别 使用步骤 1 查看所有系统变量
  • 大话西游2人数最多服务器,大话2大话各个服务器狂人榜排名 看大话如今服务器...

    大话2大话各个服务器狂人榜排名 看大话如今服务器 给大家带来各个服务器的练功排行等等 以下图均为服务器练功排行榜目前前三名 有些错误之处还望指正 冠希会及时修改 大话精灵有时候也问不到了 52 根据以下数据分析得出 1 目前超过3年以上没合
  • DM@数理逻辑@命题和联结词@形式化命题

    文章目录 abstract 命题和联结词基本概念 命题 陈述句 命题真值 真假记号 原子命题 命题分解 复合命题 联结词命题 例 半形式化命题和形式化语言 形式逻辑的抽象性 联结词形式化 否定 合取 析取 相容或的表示 排斥或的表示 蕴含
  • GPIO八种工作模式

    GPIO8种工作模式 一 输出模式 1 推挽输出 Out PP 推挽输出模式下 单片机输出高电平直接接到VDD 3 3V 输出低电平直接接到VSS 0V 具有强的驱动能力 2 开漏输出 Out OD 开漏输出模式下 单片机输出低电平也是接到
  • yolov5在plotting labels时停止并显示Process finished with exit code 1

    最近在训练yolov5模型 但在执行train py时 执行到plotting labels停止 显示错误 解决办法 报错信息里traceback里第二行 把这个注释掉就可以进入训练了
  • 用好GPT关键诀窍之上下文学习

    大家好 我是herosunly 985院校硕士毕业 现担任算法研究员一职 热衷于机器学习算法研究与应用 曾获得阿里云天池比赛第一名 CCF比赛第二名 科大讯飞比赛第三名 拥有多项发明专利 对机器学习和深度学习拥有自己独到的见解 曾经辅导过若
  • Spring AOP无法调用自身方法的原因

    this是当前对象 调用当前对象因为不是从IOC托管对象中 获取所以自然也是不能被AOP捕获 所有AOP的必须用代理对象执行 在同一个类中使用 Transaction Async并不能实现事务和异步 道理就是这样的 新建一个类 Compon
  • 深圳大学第三期“飞鹰计划”正式开班

    金秋九月 丹桂飘香 在这个充满着收获的季节里 迎来了期待已久的深圳大学机电与控制工程学院飞鹰计划2022级第三期开班典礼 受疫情影响 虽然典礼只能在线上举行 但是丝毫不影响电巢专家及学生们的热情 9月17日下午 百余位同学通过线上参加了此次
  • uCOS-II信号量OSSemCreate(0)和OSSemCreate(1)详解

    在ucos II中 为了实现任务之间的同步 用到的同步机制有 信号量 邮箱和消息队列 其中这里我主要说下对信号量的使用经验 信号量在创建时 调用OSSemCreate INT16U cnt 函数 cnt为信号量的初始值 对cnt赋予不同的值
  • Mac OS无法进入系统/数据备份/重装系统方法步骤

    之前我的Mac Mini不知为什么突然间不能进入到系统了 开机的时候基本都时进度条走到2 3的时候就会自动死机 打电话给客户 客服是不错 TM殊不知 聊了N就之后 发现这是要话费的 NM足足磨了1个多小时也没能解决我的问题 好吧 苹果系统时
  • Service Pack 6 for Visual Basic 6.0, Visual C++ 6.0 with Visual Source Safe 6.0d下载

    下载VC6 0的SP6补丁 网址http www microsoft com en us download details aspx id 9183 补充 英文版 http download microsoft com download 1
  • Java设计模式——适配器模式

    文章目录 介绍适配器模式 类适配器模式 对象的适配器模式 接口的适配器模式 介绍适配器模式 适配器主要用于接口的转换或者将接口不兼容的类对象组合在一起形成对外统一接口 是一种结构性模式 其本质是是一个中间件 适用于类及其对象 原理 通过继承
  • 全网最详!暗黑模式在 Trip.com App 的实践

    作者简介 本文为联合撰稿 作者为携程国际业务研发部UED团队静静 公共研发团队祥星 旭仔 俊仔 增翼 一 背景 在 2019 年 随着 iOS 13 与 Android Q 的推出 Apple 和 Google 同时推出主打功能暗黑模式 分
  • Jquery 菜单插件之 Superfish jQuery菜单

    大家如果想了解 Superfish jQuery菜单 插件 可以查看我发布的一篇 关于JQuery 菜单插件 这里已经告诉我们该jQuery菜单插件的相关优势和下载地址 在下载中包含基础的Demo 初始者可以依次入门 接下来 我们进入我们开