使用jQuery zTree插件快速实现目录树

原创 2015年09月08日 14:57:37

JQuery ztree官网:http://www.ztree.me/v3/main.php#_zTreeInfo

ztree是JQuery的一个开源树形目录的插件,用来快速构建网站的树形目录结构,并且提供了功能丰富,利于扩展的API。

只要引入jquery和ztree的库js,然后给ztree提供需要的json数据,并且设置好ztress的属性,就可以即刻展示出树形目录。

总结下来,要使用ztree的话,必须要完成以下几步:

1. 引入库文件

jquery.js

ztree.js

ztree.css

2. 获取数据

你要思考数据来源问题了。

如果要自己从数据库查询树形结构这时候你需要知道oracle的递归查询connect by:oracle中使用start with...connect by prior递归查询树形结构。递归查询简单来讲就是一个表中要具备2个基本字段:id和pid(子节点和父节点id),使用关键字connect by prior来连接id和pid,start with定义数据行查询的初始点,由此获取一棵或者多棵树的树形结构。(这里顺便回忆一下sql里的分组查询group by,跟connect by区分开来。)

拿实际项目举例,项目中要获取如下的目录树:


执行以下SQL:

select level, t.dir_id, t.dir_name, t.parent_id
  from T_RES_OWNER t
 where t.IS_FOLDER = '0'
 start with 1 = 1
        and t.parent_id = '0'
        and t.owner_type = '0'
        and t.USER_ID = '136ac7a7ad624692a5b94d93e0634952'
connect by prior t.dir_id = t.parent_id
 order by level asc, t.dir_name asc;
执行结果:


3. 封装json输入

下面一段引用ztree官网demo的描述:

那么,从接口获取到存放数据的List之后,按照如上组织json给ztree使用即可,参考以下代码:

JSONArray tree = new JSONArray();
			List<ResOwner> list = resOwnerService.selectFolderTree(owner);
			JSONObject obj = null;
			for(ResOwner resOwner : list){
				obj = new JSONObject();
				obj.put("id", resOwner.getDirId());
				obj.put("pId", resOwner.getParentId());
				obj.put("name", resOwner.getDirName().length() > 24?resOwner.getDirName().substring(0,24)+"...":resOwner.getDirName());
				obj.put("icon", SysConf.getString("webapp.jspconfigUrl") + "common/css/zTreeStyle2/img/leaf_ico.png");
				tree.add(obj);
			}
			result.put("success", new Boolean(true));
			result.put("data", tree);
			return result;

4. 设置ztree属性

var zNodes = data.data;
				var setting = {
					view : {
						showLine: false,
						showIcon : true
					},
					data : {
						simpleData : {
							enable : true
						}
					},
					edit: {
						enable: true,
						showRemoveBtn: true,
						showRenameBtn: true,
						removeTitle: "删除",
						renameTitle: "重命名"
					},
					callback: {
						onClick: zTreeOnClick,
						beforeRemove: zTreeBeforeRemove,
						onRename: zTreeOnRename
					}
				};
				//初始化网盘结构树
				$.fn.zTree.init($("#treeDemo_mydoc"), setting, zNodes);
<div class="zTreeDemoBackground2 left" style="width:168px;">
	                            <ul id="treeDemo_mydoc" class="ztree2" style="width:168px;height: 168px"></ul>
	                        </div>
可以在setting.callback里面可以设置各种回调函数,用以实现更加复杂的功能,详见ztree api文档。

经过以上步骤,用ztree实现一个具有基本功能的目录树就完成了。

总结:

实现一个基本功能的目录树其实很简单,说白了就是要提供ztree需要的json数据,然后设置一些属性,其他工作就交给ztree插件来完成了,其难点在于用oracle的connect by获取数据源,另外,页面交互也比较考验JavaScript功底,毕竟很多地方是需要异步加载来提高用户体验。

版权声明:本文为博主原创文章,未经博主允许不得转载。

jquery实现文件树目录、折叠目录树代码(兼容IE6,IE7)

例子简单,个人爱好,如有不足,可以共同探讨 foder.html代码如下 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional...
  • h348592532
  • h348592532
  • 2013年11月26日 09:57
  • 5001

Ajax动态加载目录树(jquery-treeview)

需求:   动态加载目录树节点数据。即:树的初始状态为根节点树,当点击其中一个节点时,再从数据库中获取当前节点的子节点。环境:   Struts1+Hibernate3.0+jQuery+treevi...
  • bob007abc
  • bob007abc
  • 2010年02月02日 18:46
  • 18243

利用jQuery无插件创建可扩展目录树

这是一个简单、轻量级的,基于jQuery的目录树。纯html代码。 $( document ).ready( function( ) {    $( '.tree li' ).each( functi...
  • zlfprogram
  • zlfprogram
  • 2017年07月01日 16:02
  • 2423

采用Jquery + ajax时间目录树

  • 2015年07月06日 15:30
  • 3.52MB
  • 下载

dTree无限级目录树和JQuery同步ajax请求

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree...
  • zylzb
  • zylzb
  • 2014年10月27日 17:26
  • 966

jQuery的zTree树插件

最近要做一个树结构,就使用了jQuery 的树插件,感觉还不错,做个随笔 页面的基本结构是这样的 这里的样式是使用了metroStyle文件夹里的类bootstrap风格,当然首先需要下载zt...
  • Shangshan_Ruohe
  • Shangshan_Ruohe
  • 2017年05月01日 23:57
  • 419

JQuery开源树形目录的插件--zTress

概念: zTree是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。     zTree是开源免费的软件。 网址:http://w...
  • aaa199623
  • aaa199623
  • 2017年06月26日 17:01
  • 233

dTree无限级目录树和JQuery同步Ajax请求

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree...
  • elim168
  • elim168
  • 2014年10月29日 14:35
  • 9707

jquery树形展示服务端目录结构树组件

  • 2008年07月24日 10:09
  • 26KB
  • 下载

jquery树形插件zTree使用示例--入门

最近在做宿舍管理系统小型项目,在进行用户角色设定、角色资源(菜单)设定的时候,需要使用树行结构进行动态设置。使用到jquery树形结构插件zTree。整理一下入门级的使用zTree的方法。 1、通过...
  • yaoyy09
  • yaoyy09
  • 2016年11月16日 15:06
  • 3660
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用jQuery zTree插件快速实现目录树
举报原因:
原因补充:

(最多只允许输入30个字)