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

  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。

相关文档
最新文档