jQuery树形菜单

合集下载

Jquery树形菜单默认全部展开了,需要缩起,求解

Jquery树形菜单默认全部展开了,需要缩起,求解

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Jquery 树形菜单默认全部展开了,需要缩起,求解个人网上下了一段Jquery 树形菜单代码,默认打开页面是全部展开的,需要全部缩起来,只显示第一级,求解修改哪里?!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML1.0Transitional//EN”“w3/TR/xhtml1/DTD/xhtml1-transitional.dtd”htmlxmlns=“w3/1999/xhtml”head metahttp-equiv=“Content- Type”content=“text/html;charset=utf-8”/title /title !--图标样式-- linkrel=“stylesheet”type=“text/css”href=“css/bootstrap.min.css”/!--主要样式-- linkrel=“stylesheet”type=“text/css”href=“css/style.css”/scripttype=“text/javascript”src=“js/jquery-1.7.2.min.js”/script scripttype=“text/javascript”$(function(){$(‘.treeli:has(ul)’).addClass(‘parent_li’).find(‘span’).attr(‘title’,’Collapsethisbranch’);$(‘.treeli.parent_li span’).on(‘click’,function(e){ varchildren=$(this).parent(‘li.parent_li’).find(‘ul li’);if(children.is(“:visible”)){children.hide(‘fast’);$(this).attr(‘title’,’Expandthisbranch’).find(‘i’).addClass(‘icon-plus-sign’).removeClass(‘icon-minus- sign’);}else{children.show(‘fast’);$(this).attr(‘title’,’Collapsethisbranch’).find(‘i’).addClass(‘icon-minus-sign’).removeClass(‘icon-plus-sign’);}e.stopPropagation(); });}); /script /head body div ul li span i /i Parent2 /span a href=“#” Test /a ul li spanstyle=““i /i Child /span a href=“#”Test /a /li li span i /i Child /span a href=“#” Test /a /li /ul /li li span i /i Parent2 /span a href=“#” Test /a ul li span i /i Child /span a href=“#” Test /a /li /ul /li li span i /i Parent2 /span /li /ul /div /body /html !DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML1.0Transitional//EN”“w3/TR/xhtml1/DTD/xhtml1-transitional.dtd”htmlxmlns=“w3/1999/xhtml”head metahttp-equiv=“Content- Type”content=“text/html;charset=utf-8”/title /title !--图标样式-- linkrel=“stylesheet”type=“text/css”href=“css/bootstrap.min.css”/!--主要样式-- linkrel=“stylesheet”type=“text/css”href=“css/style.css”/。

JQuery EasyUI Tree的用法

JQuery EasyUI Tree的用法

JQuery EasyUI Tree的用法树控件是页面中用来实现菜单的最常用控件之一,在经典的后台结构中,左侧通常是导航菜单,导航菜单实现的最常见方式就是树状菜单,接下来让我们介绍一个EasyUI的树控件。

1、节点的属性每个树都是由若干个节点构成的,每个节点都包括若干属性,想要做好树,就要根据节点的属性封装成对应json结构即可。

即,json对象不允许自定义,所使用的键值对中的键必须对应节点的属性名1)id:节点id,这个很重要到加载远程服务器数据时使用2)text: 显示的节点文本3)state: 节点状态, 'open' 或者 'closed', 默认是 'open'. 当设置为'closed', 节点所有的子节点将从远程服务器站点加载4)checked: 指明检查节点是否选中.5)attributes: 可以添加到节点的自定义属性6)children: 一个节点数组,定义一些子节点2、 异步加载树tree 支持内置的异步加载模式,用户创建一个空的tree,然后定义一个远程服务器站点返回json 数据用于填充tree 来异步满足异步加载需求.例如:tree 的加载是通过URL ‘ showCategory.action '访问远程服务器加载节点的.子节点的加载依赖于父节点的状态.当展开一个关闭节点,如果节点没有子节点加载,将发送节点id 值作为http 参数,参数命名为'id'到远程服务器,通过以上URL 定义.检索子节点数据看看这个从服务器返回的数据树显示文学类、历史类和科技类,当展开文学类时,会自动将id=1传递到服务器端,服务器端接收到id 值后,再次查询并返回如同上面的数据,自动加载到文学类节点下面。

3、 编写节点点击事件树控件除了作为菜单起到展示作用以外,还会根据点击节点不同,实现不同的功能,因此最常用的事件即点击事件,示例代码如下:。

JavaScript生成树形菜单(递归算法)

JavaScript生成树形菜单(递归算法)

JavaScript⽣成树形菜单(递归算法)1、最终效果图(这⾥仅为实现算法,并加载⾄页⾯,不做任何css界⾯优化)注释:本⽰例包含三级⽬录菜单,但实际上可⽀持N级(可使⽤该代码⾃⾏测试)2、数据源菜单信息⼀般来源于数据库中数据表,且为⾃连接表,其中包含主要字段(主键,菜单名称,⽗级id);本⽰例在前端页⾯中使⽤对象数组模拟从数据库获取菜单信息;var menuArry = [{ id: 1, name: "办公管理", pid: 0 },{ id: 2, name: "请假申请", pid: 1 },{ id: 3, name: "出差申请", pid: 1 },{ id: 4, name: "请假记录", pid: 2 },{ id: 5, name: "系统设置", pid: 0 },{ id: 6, name: "权限管理", pid: 5 },{ id: 7, name: "⽤户⾓⾊", pid: 6 },{ id: 8, name: "菜单设置", pid: 6 },]; 注释:id——菜单主键id;name——菜单名称;pid——⽗级id3、程序设计菜单信息⼀般来源//菜单列表htmlvar menus = '';//根据菜单主键id⽣成菜单列表html//id:菜单主键id//arry:菜单数组信息function GetData(id, arry) {var childArry = GetParentArry(id, arry);if (childArry.length > 0) {menus += '<ul>';for (var i in childArry) {menus += '<li>' + childArry[i].name;GetData(childArry[i].id, arry);menus += '</li>';}menus += '</ul>';}}//根据菜单主键id获取下级菜单//id:菜单主键id//arry:菜单数组信息function GetParentArry(id, arry) {var newArry = new Array();for (var i in arry) {if (arry[i].pid == id)newArry.push(arry[i]);}return newArry;}注释:本⽰例菜单使⽤ul⽆序列表演⽰,menus变量为最终⽣成的菜单html4、运⾏GetData(0, menuArry)$("body").append(menus);注释:GetData(0, menuArry),0——顶级菜单主键5、完整代码<!DOCTYPE html><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title><script src="jquery-1.8.3.min.js"></script></head><body><script type="text/javascript">$(function () {var menuArry = [{ id: 1, name: "办公管理", pid: 0 },{ id: 2, name: "请假申请", pid: 1 },{ id: 3, name: "出差申请", pid: 1 },{ id: 4, name: "请假记录", pid: 2 },{ id: 5, name: "系统设置", pid: 0 },{ id: 6, name: "权限管理", pid: 5 },{ id: 7, name: "⽤户⾓⾊", pid: 6 },{ id: 8, name: "菜单设置", pid: 6 },];GetData(0, menuArry)$("body").append(menus);});//菜单列表htmlvar menus = '';//根据菜单主键id⽣成菜单列表html//id:菜单主键id//arry:菜单数组信息function GetData(id, arry) {var childArry = GetParentArry(id, arry);if (childArry.length > 0) {menus += '<ul>';for (var i in childArry) {menus += '<li>' + childArry[i].name;GetData(childArry[i].id, arry);menus += '</li>';}menus += '</ul>';}}//根据菜单主键id获取下级菜单//id:菜单主键id//arry:菜单数组信息function GetParentArry(id, arry) {var newArry = new Array();for (var i in arry) {if (arry[i].pid == id)newArry.push(arry[i]);}return newArry;}</script></body></html>。

移动端实现树级菜单的方法

移动端实现树级菜单的方法

移动端实现树级菜单的方法全文共四篇示例,供读者参考第一篇示例:在移动端开发中,实现树级菜单是一项常见且重要的任务。

在移动设备上,由于屏幕空间有限,设计和实现树级菜单需要考虑到用户体验和界面布局的限制。

本文将介绍一些常见的方法和技巧来实现移动端的树级菜单。

一、使用折叠菜单折叠菜单是一种常见的树级菜单设计模式,适用于移动设备上的界面。

在折叠菜单中,每个父级菜单项下面可以展开或折叠多个子级菜单项,用户可以点击父级菜单项来展开或折叠子级菜单项。

这种设计模式节省了屏幕空间,并且用户可以方便地浏览和操作树状结构的数据。

在实现折叠菜单时,可以使用HTML、CSS和JavaScript来构建。

可以使用HTML的ul和li标签来表示菜单的层级结构,使用CSS样式来控制菜单的外观和布局,使用JavaScript来添加交互效果和实现菜单的展开和折叠功能。

通过合理的布局和样式设计,可以在移动设备上呈现出清晰、易用的树级菜单。

二、利用滑动菜单在实现滑动菜单时,可以利用现有的移动端UI框架或库来快速实现。

一些流行的移动端UI框架,如jQuery Mobile、Ionic等,提供了丰富的界面组件和交互效果,可以帮助开发人员快速构建滑动菜单。

通过合理的布局和交互设计,可以让滑动菜单在移动设备上呈现出流畅、直观的用户体验。

三、响应式设计在设计移动端树级菜单时,需要考虑到不同设备屏幕大小和分辨率的差异。

为了适应不同尺寸的移动设备,可以使用响应式设计的技术来实现自适应的界面布局。

通过使用CSS媒体查询和弹性布局等技术,可以让树级菜单在不同尺寸的屏幕上自动调整布局和样式,确保用户在任何设备上都能够方便地访问和操作菜单。

在移动端实现树级菜单时,需要综合考虑用户体验、界面设计和技术实现等多方面因素。

通过选择合适的设计模式、利用现有的UI框架和工具、采用响应式设计等方法,可以实现一个优秀的移动端树级菜单,为用户提供更好的导航和操作体验。

希望本文介绍的方法和技巧能够帮助开发人员更好地实现移动端树级菜单。

JQueryEasyUi(Tree树)详解(转)

JQueryEasyUi(Tree树)详解(转)

JQueryEasyUi(Tree树)详解(转)第⼀讲:JQuery Easy Ui到底是什么呢?⾸先咱们知道JQuery是对Java Script的封装,是⼀个js库,主要提供的功能是选择器,属性修改和事件绑定等等。

JQuery ui是在jQuery的基础上,利⽤jQuery的扩展性,设计的插件。

那么JQuery Easy Ui到底是什么呢?我的理解就是⽐JQuery ui更强⼤,同样都是实现绚丽的多功能效果!jQuery Easy UI的⽬的就是帮助Web开发者更轻松的打造出功能更丰富并且更美观的UI界⾯。

当然JQuery Easy ui提供了⽤于创建跨浏览器⽹页的完整的组件集合,包括功能强⼤的 datagrid(数据⽹格)、treegrid(树形表格)、 panel(⾯板)、combo(下拉组合)等等。

⽤户可以组合使⽤这些组件,也可以单独使⽤其中⼀个。

其实就这么简单,对某个事物的定义,个⼈感觉没有什么固定的答案,只是那种答案更⽅便你的记忆,你记住的,它存在你深深的脑海⾥的,便是答案!JQuery Easy Ui插件列表如下:分类插件Base(基础)Parser 解析器Easyloader 加载器Draggable 可拖动Droppable 可放置Resizable 可调整尺⼨Pagination 分页Searchbox 搜索框Progressbar 进度条Tooltip 提⽰框Layout(布局)Panel ⾯板Tabs 标签页/选项卡Accordion 折叠⾯板Layout 布局Menu(菜单)与 Button(按钮)Menu 菜单Linkbutton 链接按钮Menubutton 菜单按钮Splitbutton 分割按钮Form(表单)Form 表单Validatebox 验证框Combo 组合Combobox 组合框Combotree 组合树Combogrid 组合⽹格Numberbox 数字框Datebox ⽇期框Datetimebox ⽇期时间框Calendar ⽇历Spinner 微调器Numberspinner 数值微调器Timespinner 时间微调器Slider 滑块Window 窗⼝Window(窗⼝)Window 窗⼝Dialog 对话框Messager 消息框DataGrid(数据⽹格)与Tree(树)Datagrid 数据⽹格Propertygrid 属性⽹格Tree 树Treegrid 树形⽹格但是今天咱们只针对Tree(树)连接数据进⾏讲解!下⾯是它的⼀些基本的属性:id: 绑定到节点的标识值;text:显⽰⽂本;iconCls: 显⽰icon的css样式;checked: 节点是否选中;state: 节点状态, 'open' 或者 'closed';attributes: 绑定到节点的⾃定义属性;target: ⽬标 DOM 对象;children: ⼀个节点数组,定义⼀些⼦节点。

zTree总结

zTree总结

ZTree简介ZTree是什么:zTree 是一个依靠jQuery 实现的多功能“树插件”。

为什么使用ZTree控件:优异的性能、灵活的配置、多种功能的组合是zTree 最大优点。

1、运行效率高,采用了延时加载技术,上万节点轻松加载,即使在IE6 下也能基本做到秒杀2、用户体验高,页面内可同时生成多个Tree 实例,支持任意更换皮肤/ 自定义图标,支持极其灵活的checkbox 或radio 选择功能可以给用户带来较高的用户体验3、兼容性好,支持各大主流浏览器(IE、FireFox、Chrome、Safari)4、配置简单,灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽5、支持JSON 数据6、支持静态和Ajax 异步加载节点数据ZTree使用说明前提条件:页面要引入jquery.ztree.all-3.3.jsjquery-1.4.4.min.jszTreeStyle.css导入img文件夹Java端要引入Json-lib-2.1.jar数据库表中字段必须要有三个:id pid name思路详解动态显示zTree树形结构在页面端要引入相关js文件以及css样式文件,java端引入json-lib.jar包,当客户端发送请求到action中,action访问service,service访问dao,之后返回List,将List转换成json数组,再将json数组转换成json字符串(http请求接收的是字符串),然后再将json字符串返回到jsp页面(确切的说是将json字符串返回到jsp页面中zNodes这一变量中)。

页面通过jquery加载方法ready来加载zTree,zTree则通过内部封装好的init方法来加载树,首先要加载显示树的网页元素(一般为div或者ul),其次配置树通过setting配置常用参数,之后加载树节点zNodes,zNodes也是从后台传过来的json字符串,最后动态加载树完成。

ztree async参数

ztree async参数

ztree async参数
ztree是一款常用的jQuery树形菜单插件,它提供了一系列参
数来定制树形菜单的展示效果。

其中,async参数是用来实现异步加载节点的功能。

使用async参数,可以将树形菜单的节点数据分为两部分:初始节点和延迟加载节点。

初始节点是在页面加载时就已经加载完毕的,而延迟加载节点则是在用户点击节点时才会异步加载并显示出来。

要使用async参数,需要设置以下几个参数:
1. async: true:表示开启异步加载节点的功能。

2. url: “xxx”:表示异步加载节点的请求地址。

3. type: “post”:表示异步加载节点的请求方式,一般为post 或get。

4. dataType: “json”:表示异步加载节点的响应数据类型,一般为json或html。

5. dataFilter: function(treeId, parentNode, responseData):表示将异步加载的响应数据转换成ztree可以识别的格式的函数。

6. autoParam: [“id=xxx”]:表示异步加载节点时需要传递的参数,一般是节点id。

7. otherParam: {“xxx”:”yyy”}:表示异步加载节点时需要传递的其他参数。

使用async参数可以让树形菜单的数据更加灵活,同时也可以提高页面加载速度和用户体验。

但是需要注意,异步加载节点时需要注
意控制请求次数和数据量,避免对服务器造成过大的负担。

左侧树形菜单消失的解决方法

左侧树形菜单消失的解决方法

左侧树形菜单消失的解决方法1. 检查HTML和CSS代码,确保左侧树形菜单的元素与样式是否正确加载。

2. 使用浏览器开发者工具检查是否有错误的JavaScript代码或错误信息导致左侧树形菜单消失。

3. 确保左侧树形菜单的容器元素没有被隐藏或者被覆盖,可以通过检查CSS中的z-index属性来排除这种可能。

4. 确保左侧树形菜单的宽度和高度设置正确,避免因为尺寸问题而导致菜单消失。

5. 检查左侧树形菜单的定位方式,确认是否设定了正确的相对或绝对定位。

6. 确认左侧树形菜单是否被其他元素遮挡,可以通过调整z-index属性或调整元素位置来解决。

7. 检查左侧树形菜单所在的父容器的overflow属性,确保不会将菜单内容裁剪隐藏。

8. 使用浏览器兼容性工具检查是否有不同浏览器对左侧树形菜单的渲染问题,适当调整样式以解决兼容性问题。

9. 如果左侧树形菜单是通过JavaScript动态生成的,确认数据加载和菜单渲染逻辑是否正确。

10. 检查是否有事件监听器或触发器导致了左侧树形菜单在特定条件下消失,针对这些逻辑进行排查和修复。

11. 如果左侧树形菜单依赖于后端接口数据,确保接口返回的数据格式和内容正确,避免因为数据问题而导致菜单消失。

12. 修改左侧树形菜单的样式,例如背景色、边框等,以便于快速发现菜单的位置和状态。

13. 检查浏览器缓存是否导致菜单内容未能正确加载,适当清除浏览器缓存并重新加载页面。

14. 若左侧树形菜单涉及到页面切换或加载,确认页面跳转的逻辑是否导致菜单消失,可以尝试延迟菜单渲染的时机或进行预加载。

15. 调试页面的JavaScript代码,查看是否有其他脚本与左侧树形菜单的显示逻辑产生冲突。

16. 尝试使用不同的浏览器测试,以确认是否存在特定浏览器导致菜单消失的问题。

17. 确认左侧树形菜单相关的样式表是否正确引入,排查样式文件路径问题。

18. 检查页面布局是否存在响应式设计,可能是因为页面宽度变化导致左侧树形菜单消失。

Bootstrap框架建立树形菜单(Tree)的实例代码

Bootstrap框架建立树形菜单(Tree)的实例代码

Bootstrap框架建⽴树形菜单(Tree)的实例代码这⾥的Tree指的是树形菜单,这篇⽂章通过⼀个实例来讲解⼀下,在Bootstrap框架下怎么去建⽴⼀个树形菜单。

前提:先添加Bootstrap和JQ的引⽤<link rel="stylesheet" type="text/css" href="bootstrap-3.3.0-dist/dist/css/bootstrap.min.css" rel="external nofollow" ><script src="bootstrap-3.3.0-dist/dist/js/jquery-1.11.2.min.js"></script><script src="bootstrap-3.3.0-dist/dist/js/bootstrap.min.js"></script>HTML CODE<div class="tree well"><ul><li> <span><i class="icon-folder-open"></i> 廊坊师范学院</span><ul><li> <span><i class="icon-minus-sign"></i> 教育学院</span><ul><li> <span><i class="icon-leaf"></i> 学前教育</span> </li></ul></li><li> <span><i class="icon-minus-sign"></i> 物电学院</span><ul><li> <span><i class="icon-leaf"></i> 电⽓⼯程技术</span> </li><li> <span><i class="icon-minus-sign"></i> 电⼦信息科学技术</span><ul><li> <span><i class="icon-minus-sign"></i> 电⼦⼀班</span><ul><li> <span><i class="icon-leaf"></i> 宋笑</span> </li><li> <span><i class="icon-leaf"></i> ⼆盟</span> </li></ul></li><li> <span><i class="icon-leaf"></i> 电⼦⼆班</span> </li></ul></li><li> <span><i class="icon-leaf"></i> 物理学</span> </li></ul></li></ul></li></ul></div>CSS CODE(为树形菜单添加样式,使其符合Bootstrap框架的风格).tree {min-height:20px;padding:19px;margin-bottom:20px;background-color:#fbfbfb;border:1px solid #999;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05)}.tree li {list-style-type:none;margin:0;padding:10px 5px 0 5px;position:relative}.tree li::before, .tree li::after {content:'';left:-20px;position:absolute;right:auto}.tree li::before {border-left:1px solid #999;bottom:50px;height:100%;top:0;width:1px}.tree li::after {border-top:1px solid #999;height:20px;top:25px;width:25px}.tree li span {-moz-border-radius:5px;-webkit-border-radius:5px;border:1px solid #999;border-radius:5px;display:inline-block;padding:3px 8px;text-decoration:none}.tree li.parent_li>span {cursor:pointer}.tree>ul>li::before, .tree>ul>li::after {border:0}.tree li:last-child::before {height:30px}.tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span {background:#eee;border:1px solid #94a0b4;color:#000}JS CODE<script type="text/javascript">//为节点添加展开,关闭的操作$(function(){$('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');$('.tree li.parent_li > span').on('click', function (e) {var children = $(this).parent('li.parent_li').find(' > ul > li');if (children.is(":visible")) {children.hide('fast');$(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign'); } else {children.show('fast');$(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign'); }e.stopPropagation();});});</script>效果:⼀棵符合Bootstrap风格的树就这么建造完成了,优点⾃不⽤说:整洁,美观。

jquery树形插件zTree高级使用详解

jquery树形插件zTree高级使用详解

jquery树形插件zTree⾼级使⽤详解使⽤⾼级zTree进⾏对属性结构进⾏操作的时候,做好的⽅式是参考官⽹的API⽂档。

本⽂简单介绍下如何通过后台传递过来⼀个树形结构的树,并且通过页⾯进⾏加载。

【与后台交互步骤】1、编写页⾯,引⼊zTree相关插件;2、编写js脚本,设定树形结构的基本属性;3、编写zTree的PO对象;4、编写返回属性结构的⽅法(json格式返回);5、页⾯请求树。

1、引⼊zTree相关的插件:<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/jquery-1.9.1.min.js"></script><link rel="stylesheet" href="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/css/bootstrap.min.css" ><script type="text/javascript" src="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/js/bootstrap.min.js"></script><!-- 引⼊zTree相关的js/css⽂件 --><link rel="stylesheet" href="<%=request.getContextPath() %>/resources/ztree/zTreeStyle/zTreeStyle.css" ><script type="text/javascript" src="<%=request.getContextPath() %>/resources/ztree/jquery.ztree.all.js"></script>2、编写js脚本,设定树形结构的基本属性// zTree 的参数配置,深⼊使⽤请参考 API ⽂档(setting 配置详解)var setting = {check:{enable: false,//autoCheckTrigger:true,//chkStyle:"none"},callback:{onClick:queryRoleByEmployee}};function queryRoleByEmployee(event, treeId, treeNode){//(treeNode.tId + ", " + + "," + treeNode.checked);//("--------"+treeNode.isParent);if(treeNode.isParent == true){//将⾓⾊的树形结构清楚$.fn.zTree.destroy("roleTree");return ;}$.get('<%=request.getContextPath()%>/'+treeNode.objCode+'/role',{"coddd":treeNode.isParent},function(data){(data);zTreeObj = $.fn.zTree.init($("#roleTree"), settingRole, data);});}3、编写zTree的PO对象public class DimsTree {//除了树本⾝的属性,还可以⾃定义属性.private Object objCode;//树形结构展⽰的名称private String name;//是否打开属性private String open;//是否根节点private boolean isParent;//urlprivate String url;//⼦节点private List<DimsTree> children;//是否被选中private boolean checked;//省略gettings和settings⽅法}4、编写返回属性结构的⽅法(json格式返回)@ResponseBody@RequestMapping(value="/user_role1")public List<DimsTree> userRole1(Model model){//宿舍信息TreeList<DimsTree> dimsTreeList = new ArrayList<DimsTree>();//加载⽤户信息列表,⼿链需要加载宿舍信息,将⽤户信息加⼊到宿舍信息中.List<Dormitory> dormitoiryList = dormitoryDao.list();for(Dormitory dorm: dormitoiryList){DimsTree dt = new DimsTree();dt.setName(dorm.getDormCode());dt.setParent(true);//根节点dt.setObjCode(dorm.getDormCode());dt.setChildren(employee2DimsTree(dorm));dimsTreeList.add(dt);}model.addAttribute(dimsTreeList);//加载⾓⾊信息列表,对已经选中的⾓⾊进⾏设置checked=true属性。

移动端实现树级菜单的方法

移动端实现树级菜单的方法

移动端实现树级菜单的方法
在移动端实现树级菜单的方法有很多种,这里我会列举几种常见的方法:
1. 嵌套列表(Nested List):这是最简单的方式,每个节点可以是一个列
表或者一个子菜单。

然而,这种方法可能会在移动设备上显得过于复杂和混乱,因为需要滚动和缩放才能查看所有的菜单项。

2. 展开/折叠菜单(Accordion Menu):这是另一种常见的方法,每个节
点都有一个展开和折叠的按钮。

当用户点击一个节点时,该节点及其所有子节点会展开或折叠。

这种方法的好处是用户可以一次查看所有的菜单项,但是它可能会在层次很深的菜单上显得很混乱。

3. 侧边抽屉菜单(Side Drawer Menu):这是一种常见的移动端导航模式,用户可以从屏幕的一侧滑动打开一个包含所有菜单项的列表。

这种方法的优点是用户可以快速访问任何菜单项,但是如果菜单项太多,用户可能需要多次滑动才能找到他们想要的。

4. 面包屑菜单(Breadcrumb Menu):这种菜单通过显示当前节点的父节点来提供一种导航的方式。

虽然它不适合所有的应用,但是对于那些需要用户知道他们当前位置的应用来说,这是一个很好的选择。

5. 卡片式菜单(Card Menu):在这种方法中,每个节点都显示为一个卡片,用户可以点击卡片来打开或关闭它。

这种方法的优点是用户可以清楚地看到哪些节点是开放的,但是它可能会在层次很深的菜单上显得很混乱。

以上就是一些常见的实现树级菜单的方法,具体使用哪种方法取决于你的应用的需求和用户的习惯。

bootstraptreeivew例子

bootstraptreeivew例子

一、什么是BootstrapTreeViewBootstrapTreeView是一个基于Bootstrap框架的jQuery插件,它是一个用于展示树形结构数据的视图组件。

通过BootstrapTreeView,用户可以方便地展示和操纵树型数据,使得网页界面更加直观和易于使用。

二、BootstrapTreeView的基本用法1. 引入必要的文件要使用BootstrapTreeView,首先需要在HTML文件中引入必要的文件,包括Bootstrap的CSS和JavaScript文件,以及BootstrapTreeView的CSS和JavaScript文件。

```html<link rel="stylesheet" href="path/to/bootstrap.min.css"><script src="path/to/bootstrap.min.js"></script><link rel="stylesheet" href="path/to/bootstrap-treeview.min.css"><script src="path/to/bootstrap-treeview.min.js"></script>```2. 创建树形结构在HTML文件中创建一个用于展示树形结构的元素,例如一个div元素。

```html<div id="treeview"></div>```3. 初始化BootstrapTreeView在JavaScript文件中初始化BootstrapTreeView,为它提供需要展示的树形数据,并设置其他必要的选项。

```javascriptvar treeData = [{text: "Parent 1",nodes: [{text: "Child 1",},{text: "Child 2", }]},{text: "Parent 2",nodes: [{text: "Child 3", },{text: "Child 4", }]}];$('#treeview').treeview({ data: treeData });```4. 其他操作除了初始化以外,BootstrapTreeView还提供了丰富的API和事件,用于对树形结构进行增删改查等操作,以及响应用户的交互行为。

jq 递归遍历tree结构

jq 递归遍历tree结构

jq 递归遍历tree结构
在jq中,递归遍历tree结构可以使用walk或walk_path函数。

这两个函数都接受一个过滤器作为参数,该过滤器将应用于每个节点。

下面是一个示例,展示如何使用walk函数递归遍历tree结构:
```bash
jq 'walk(if type == "object" then . + {new_key: .new_value} else . end)' ```
在这个示例中,我们使用walk函数递归遍历输入的JSON对象。

对于每个对象节点,我们检查其类型是否为"object"。

如果是,我们向该对象添加一个新的键值对(new_key: new_value)。

否则,我们直接返回当前节点。

如果你想使用walk_path函数,可以按照以下方式进行:
```bash
jq 'walk_path(if type == "object" then . + {new_key: .new_value} else . end)'
```
walk_path函数会遍历整个JSON路径,包括嵌套的数组和对象。

与walk 函数类似,我们使用相同的过滤器来处理每个节点。

请注意,以上示例中的new_key和new_value是占位符,你需要将其替换为你实际需要处理的键和值。

jqgridtreegrid树状表格和折叠表格的前端案例

jqgridtreegrid树状表格和折叠表格的前端案例

jqgridtreegrid树状表格和折叠表格的前端案例 treegird 表格function gridList() {function gridList() {$.jgrid.defaults.styleUI = "Bootstrap";var $gridList = $("#gridList");$gridList.jqGrid({treeGrid: true,//启⽤树型Grid功能shrinkToFit: true, //⾃适应宽度treeGridModel: "adjacency",//表⽰返回数据的读取类型,分为两种:nested和adjacency,默认值:nestedExpandColumn: "so_managerid",//树型结构在哪列显⽰url: "/SystemModule/Sys_Organize/GetTreeGridJson",//要访问的后台地址height: $('body').height() - FullHeight - 155,datatype: "json",autowidth: true,rownumbers: true,colNames: ['主键', '名称', '负责⼈'],//, '电话', '备注'colModel: [{ name: "so_id",hidden:true, key: true },{ name: 'so_fullname', width: 450, align: 'left', sortable: false },//, formatter: showName{ name: 'so_managerid', hidden: true, width: 300, align: 'left' },],beforeRequest: function () { $(".jqgrid-overlay").show();},loadComplete: function () { $(".jqgrid-overlay").hide();}});//全选/全不选//$("#chkAll").on('click', function () {// //$("#chkAll").prop("checked", true);// alert("33"); return;// //$("input[id^='chx']").each(function () {// // $(this).prop("checked", $("#chxCheckAll").is(':checked'));// //});//});} }折叠表格$(window).bind('resize', function () { var width = $('.jqGrid_wrapper').width(); $('#table_list').setGridWidth(width);});function gridList() {$.jgrid.defaults.styleUI = 'Bootstrap';$("#table_list").jqGrid({height: $("body").height() - 155,autowidth: true, //⾃适应宽度shrinkToFit: true, //⾃适应宽度rowNum: -1,rownumbers: true,datatype: "json",pager: "#pager_list",viewrecords: true,multiselect: true, //复选//折叠grouping: true,groupingView: {groupField: ['projectid'],//折叠字段groupColumnShow: [false],//分组列是否显⽰groupCollapse: true,groupText: ['<b>{0} - {1} 条记录</b>'],groupOrder: ['desc'],groupSummary: [false],groupDataSorted: true},url: "/ResourceInnovation/Project/GetGridJson", //获取数据的函数mtype: 'POST', //函数类型colNames: ['主键', '项⽬名称', '年份', '世代', '试验名称'],colModel: [{ name: "scheme_id", index: "scheme_id", hidden: true },{ name: "projectid", index: "projectid", sortable: false },{ name: "tyear", index: "tyear", sortable: false },{ name: "generation", index: "generation", sortable: false },{name: "scheme_name", index: "scheme_name", sortable: false, formatter: function (value, opt, row) { return '<a href="@Url.Action("GoMain")/' + row.scheme_id + '">' + value + '</a>';}}],jsonReader: {root: 'Rows', //Json数据total: 'TotalPage', //总页数page: 'CurrentPage', //当前页records: 'TotalCount', //总记录数id: 'scheme_id', //相当于设置主键repeatitems: false},beforeRequest: function () { $(".jqgrid-overlay").show();},loadComplete: function () { $(".jqgrid-overlay").hide(); $(".ui-jqgrid-bdiv").css({ "overflow-x": "auto" });}});//查询$("#btn_search").click(function () {var year = $("#year").val();var search_name = $("#search_name").val();var search_scheme_name = $("#search_scheme_name").val();if (year == '' && search_name == '' && search_scheme_name == '') {return;}$("#table_list").jqGrid("setGridParam", {postData: {year: $("#year").val(),search_name: $("#search_name").val(),search_scheme_name: $("#search_scheme_name").val()}}).trigger("reloadGrid", [{ page: 1 }]); //重载JQGrid});//刷新$("#btn_refrech").click(function () {$("#year").val('');$("#search_name").val('');$("#search_scheme_name").val('');$("#table_list").jqGrid("setGridParam", {postData: {year: $("#year").val(),search_name: $("#search_name").val(),search_scheme_name: $("#search_scheme_name").val() }}).trigger("reloadGrid", [{ page: 1 }]); //重载JQGrid});}。

jquery遍历同辈节点的方法

jquery遍历同辈节点的方法

一、介绍jQuery 是一个快速、简洁的 JavaScript 库,致力于适应各种不同类型的浏览器。

在实际开发中,经常会遇到需要遍历同辈节点的情况,例如查找某个元素的兄弟节点、父节点的子节点等。

本文将介绍 jQuery 中遍历同辈节点的方法,以及在实际开发中的应用。

二、遍历同辈节点的方法1. siblings() 方法jQuery 中的 siblings() 方法可以获取匹配元素的所有同辈元素。

它返回一个包含所有匹配元素的同辈元素的 jQuery 对象。

例如:```$("ul li").siblings().css("background-color", "yellow");```上面的代码将选取所有 ul 元素中的 li 元素的同辈元素,并将它们的背景色设置为黄色。

2. next() 方法和 prev() 方法next() 方法用于获得匹配元素集合中每个元素紧邻的下一个同辈元素。

prev() 方法则是相反,用于获得匹配元素集合中每个元素紧邻的上一个同辈元素。

例如:```$("ul li").next().css("background-color", "blue");```上面的代码将选取所有 ul 元素中的 li 元素的下一个同辈元素,并将它们的背景色设置为蓝色。

3. nextAll() 方法和 prevAll() 方法nextAll() 方法用于获得匹配元素集合中每个元素之后所有的同辈元素。

prevAll() 方法则是相反,用于获得匹配元素集合中每个元素之前所有的同辈元素。

例如:```$("ul li").nextAll().css("display", "none");```上面的代码将选取所有 ul 元素中的 li 元素的之后所有的同辈元素,并将它们的 display 属性设置为 none。

jQueryEasyUI

jQueryEasyUI
jQuery插件是指基于jQuery脚本库开发出来的扩充函数库 jQuery的官方插件叫做jQuery UI
查找插件和帮助(常用网址)
jQueryUI官方网站 jQueryUI官方网站提供的API文档 jQuery官方网站的插件库
onLoadError()
加载远程数据发生某些错误时触发
onBeforeLoad(param) 发送加载数据的请求前触发
15/21
datagrid插件5-3
Column对象常用属性
属性
说明
String title
列的标题文字
String field
列的字段名
Number width
列的宽度
String align
//是否显示复选框
onDblClick:function(node){ //鼠标双击事件
$(this).tree("toggle",node.target); //改变当前节点状态
}
});
});
</script>
演示示例1:树形菜单
11/21
tree插件5-5
tree数据节点说明
参数
说明
String id 或 Integer id 当前节点的id
<script> $(function(){
jquery.easyui.min.js包含了easyUI中的所有插件
$('#tree').tree({
url:'tree_data.json',
//远程加载tree数据的url路径
animate:true,
//是否开启动画效果
checkbox:true,

ztree取消父节点勾选状态

ztree取消父节点勾选状态

ztree取消父节点勾选状态
标题:解决ztree取消父节点勾选状态的方法
正文:
在使用ztree进行树形菜单展示时,有时候需要取消父节点的勾选状态,以便更好地控制子节点的选中情况。

本文将介绍一种简单有效的方法来实现这一需求。

首先,我们需要了解ztree的基本用法。

ztree是一款基于jQuery 的树形菜单插件,它可以将数据以树形结构展示出来,并支持节点的选择、展开与折叠等功能。

当我们需要取消父节点的勾选状态时,可以通过以下步骤来实现:
第一步,获取父节点的选中状态。

在ztree中,可以通过获取父节点的选中状态来判断是否需要取消勾选。

第二步,取消父节点的勾选状态。

如果父节点的选中状态为true,则可以调用ztree的取消勾选方法,将其勾选状态设置为false。

第三步,处理子节点的选中状态。

取消父节点的勾选状态后,需要处理其子节点的选中状态。

可以通过递归遍历子节点,并将其选中状态设置为false,以实现取消勾选的效果。

通过以上步骤,我们可以轻松地取消父节点的勾选状态。

在实际应用中,可以根据需求进行相应的修改和扩展,以满足更多的功能需求。

总结一下,本文介绍了一种解决ztree取消父节点勾选状态的方法。

通过获取父节点的选中状态,并取消其勾选状态,再处理子节点的选中状态,我们可以实现这一需求。

在使用ztree时,我们要注意以上几点,确保文章的清晰流畅,避免包含任何会对阅读体验产生负面影响的元素。

多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)

多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)

多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)一、问题研究的背景和意义在Web应用程序开发领域,基于AJAX技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项。

目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如JQuery、Dojo、Yahoo UI、Ext JS等,还有一些独立的树形控件,例如dhtmlxtree等,这些树形控件完美的解决了层次数据的展示问题。

展示离不开数据,树形控件主要利用AJAX技术从服务器端获取数据源,数据源的格式主要包括JSON、XML等,而这些层次数据一般都存储在数据库中。

“无限级树形菜单”,顾名思义,没有级别的限制,它的数据通常来自数据库中的无限级层次数据,这种数据的存储表通常包括id和parentId这两个字段,以此来表示数据之间的层次关系。

现在问题来了,既然树形控件的数据源采用JSON或XML等格式的字符串来组织层次数据,而层次数据又存储在数据库的表中,那么如何建立起树形控件与层次数据之间的关系,换句话说,如何将数据库中的层次数据转换成对应的层次结构的JSON或XML格式的字符串,返回给客户端的JavaScript 树形控件?这就是我们要解决的关键技术问题。

本文将以目前市场上比较火热的Ext JS框架为例,讲述实现无限级树形菜单的方法,该方法同样适用于其它类似的JS树形控件。

Ext JS框架是富客户端开发中出类拔萃的框架之一。

在Ext的UI控件中,树形控件无疑是最为常用的控件之一,它用来实现树形结构的菜单。

TreeNode用来实现静态的树形菜单,AsyncTreeNode用来实现动态的异步加载树形菜单,后者最为常用,它通过接收服务器端返回来的JSON格式的数据,动态生成树形菜单节点。

动态生成树有两种思路:一种是一次性生成全部树节点,另一种是逐级加载树节点(利用AJAX,每次点击节点时查询下一级节点)。

kendodropdowntree 用法

kendodropdowntree 用法

kendodropdowntree 用法Kendodropdowntree 是一个基于jQuery的下拉树控件,它提供了一个简单而灵活的方式来展示和选择层级结构的数据。

使用Kendodropdowntree 可以轻松地创建具有层次结构的下拉菜单,这在许多应用程序中都是非常有用的。

本文将一步一步地介绍Kendodropdowntree 的用法,并提供示例代码和详细解释。

第一步是引入Kendodropdowntree 的库文件和样式表。

首先,我们需要在HTML 文件中引入jQuery 的库文件。

你可以选择从官方网站下载最新版本的jQuery,然后将其引入到你的项目中。

你也可以使用公共的CDN 连接来引入jQuery,这样可以减少你的项目的体积,并提高加载速度。

引入jQuery 后,我们还需要引入Kendodropdowntree的库文件和样式表。

你可以从Kendodropdowntree 的官方网站下载最新版本的库文件,并将其引入到你的项目中。

同样,你也可以使用公共的CDN 连接来引入Kendodropdowntree 的库文件和样式表。

第二步是创建一个HTML 元素,在其中初始化Kendodropdowntree。

你可以在你的HTML 文件中创建一个`<div>` 元素,并为其指定一个唯一的ID。

在该`<div>` 元素内,你将用于显示Kendodropdowntree 的下拉菜单。

在JavaScript 代码中,你可以使用该唯一的ID 来引用这个`<div>` 元素,并对其进行初始化。

初始化Kendodropdowntree 可以通过调用Kendodropdowntree 函数,并传入一个包含配置选项的对象来实现。

配置选项中需要指定数据源、选择事件和其他可用的选项。

这些选项将在后续的章节中逐一介绍。

第三步是配置Kendodropdowntree 的数据源。

Kendodropdowntree 支持多种数据源类型,包括本地数据和远程数据。

2020-4-14树形菜单复选框父子节点不关联实现父子节点联动回显

2020-4-14树形菜单复选框父子节点不关联实现父子节点联动回显

2020-4-14树形菜单复选框⽗⼦节点不关联实现⽗⼦节点联动回显原先的elementUI中tree组件原⽣的check-strictly未false属性只能实现⼦节点选中时⽗节点默认选中,然后在保存的时候需要getHalfCheckedKeys()⽅法去获取半选中状态的⽗节点,然后在页⾯渲染的时候,⽗节点由半选中变成了全选中,导致页⾯菜单显⽰错误(保存的时候⼦节点没有全部选中,保存重新渲染会变成⼦节点全部默认选中)因此只能通过不关联,然后⾃⼰实现关联。

代码如下:<el-tree :data="item.childAuthItem" show-checkbox ref="tree" node-key="id" @check="clickTree" :expand-on-click-node="false" :check-strictly="true" :props="defaultProps" ></el-tree> clickTree(curData, treeStatus) {const me = this;me.clickCheck(curData, treeStatus, me.$refs.tree)},/*** 树形菜单复选框⽗⼦节点不关联实现⽗⼦节点联动回显** @see selectedParent - 处理⽗节点为选中* @see uniteChildSame - 处理⼦节点为相同的勾选状态* @see removeParent - ⼦节点全没选中取消⽗级的选中状态** @param {Object} currentObj - 当前勾选节点的对象* @param {Object} treeStatus - 树⽬前的选中状态对象* @param {Object} ref - this.$refs.xxx**/clickCheck(currentObj, treeStatus, ref) {// ⽤于:⽗⼦节点严格互不关联时,⽗节点勾选变化时通知⼦节点同步变化,实现单向关联。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jQuery树形菜单(1)jquery.treeview
/fylsh/blog/item/af6ef8dd16056cadcd116602.html
jQuery的树形插件资料URL:http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ 从该网站Download得到jquery.treeview.zip文件,里面有需要js、css、images等文件以及Demo,
使用时只要在页面中引入jquery.js、jquery.cookie.js、jquery.treeview.js(树形菜单的方法)、jquery.treeview.css即可。

同时保证jquery.treeview.css文件和images文件夹的相对位置,在同一目录下即可
接下来构建树形菜单的内容如下:
<ul id="example1" class="treeview-black">
<li><span>Folder 1</span>
<ul>
<li><span >Item 1</span></li>
</ul>
</li>
<li><span >Folder 2</span>
<ul>
<li><span >Subfolder 2.1</span>
<ul id="subfolderadd">
<li><span >File 2.1.1</span></li>
<li><span >File 2.1.2</span></li>
</ul>
</li>
<li><span >File 2.2</span></li>
</ul>
</li>
<li class="closed"><span >Folder 3(closed at start)</span>
<ul>
<li><span >File 3.1</span></li>
</ul>
</li>
<li><span >File 4</span></li>
</ul>
<div id="treecontrol">
<a href="#">收起</a>
<a href="#">展开</a>
<a href="#">收起/展开</a>
</div>
最外面的结点作为外结点,每一个<ul></ul>表示一个结点,结点中可以添加很多项,项都是以<li></li>来说明项里面的内容可以是随意的,比如上面用
<span></span>来表示结点的内容,你可以用<a>等,当项的内容后面紧接着添加<ul></ul>后,那么该项就变成了父结点,
<ul><li>之间不能有html代码,<li>中不能有<li>元素,否则不会显示。

接下来调用jquery.treeview.js提供的treeview()进行展现。

首先把树形菜单对象转化为
jQuery
对象,$("#example1"),可以调用treeview()方法,$("#example1").treeview();。

控制展现方式,默认都是所有结点打开,你可以像上面那样通过class="closed"来控制它收起,除此之外,
treeview()方法还可以接受一个json对象,
{animated: "fast",
collapsed: true,
unique: false,
persist: "cookie",
control: "#treecontrol",
toggle:function(){...}}
其中animated表示树展开或者收起时的动作快慢,可以是fast/slow,默认没有。

collapsed表示树加载后的状态时转开还是收起,为true表示收起,默认展开,且没有persist 时有效。

unique表示树的可控制性,只有为false时control才会启作用。

control表示树的控制项,它的值是"#+控制层的id",这个元素下面的三个子元素分别表示点击时触发树的收起、展开、收起/展开动作
toggle表示树收起结点或者展开结点时要触发的js函数。

效果控制:树的图标的样式可以通过最外层结点的class来说明,如上面的
class="treeview-black",jquery.treeview.css
默认提供了treeview-red、treeview-black、treeview-gray等样式,当然你也可以仿照jquery.treeview.css来
添加自己的样式。

添加/删除树的结点。

是通过添加html代码来实现的。

即动态改变Dom对象。

借助于jQuery 的appendTo()方法:
把一个jQuery对象加在某个对象后面,如在id为id="subfolderadd"的li元素后面添加结点,先写好html代码为:
<li class=\"closed\"><a
href=\"\">baidu</a><ul><li>baidu1</li><li>baidu2</li><li>baidu3</li></ul> </li>,
先把这个html代码段变为jQuery对象,$("<li class=\"closed\"><a
href=\"\">baidu</a><ul><li>baidu1</li><li>baidu2</li><li>baidu3</li></ul> </li>")
,如var branches=$("<li class=\"closed\"><a
href=\"\">baidu</a><ul><li>baidu1</li><li>baidu2</li><li>baidu3</li></ul> </li>").appendTo("#subfolderadd");
然后调用treeview()刷新显示:$("#example1").treeview({add:branches});
来自: /fylsh/blog/item/172c9e2ed37936341f3089b6.html。

相关文档
最新文档