`
zTreeAPI
  • 浏览: 345773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JQuery Tree插件——zTree v3.4 正式版 发布

阅读更多

 

  这次 v3.4 主要还是修改一些细节 bug,同时新增了 destroy 方法用于一些特殊需求中执行树的销毁操作,并且这次在制作 destroy 方法的时候无意间发现了 IE9 的内存泄漏问题,并且针对这个问题对 zTree 内部的 zId 和 节点cache的存储方式 进行了适当修改,以减少 IE9 的内存泄漏问题。


  请注意:jquery.ztree.all 文件中 仅仅包含 core、excheck、exedit 这三个 js 包; 对于 exhide 以及以后推出的 扩展包都不会包含在 jquery.ztree.all 文件中。

  如果需要使用,请自行添加。

 

 

  在线操作演示:http://www.ztree.me/v3/demo.php#_101

  快速下载地址:http://code.google.com/p/jquerytree/downloads/list



下面是 v3.4 的修改记录:


   * 【增加】Demo —— OutLook 样式的左侧菜单 (http://www.ztree.me/v3/demo.php#_513)

   * 【增加】清空 zTree 的方法 $.fn.zTree.destory(treeId) & zTree.destory()


   * 【修改】core核心文件内 _eventProxy 方法中获取 tId 的方法,提高 DOM 的灵活性

   * 【修改】初始化时 多层父节点的 checkbox 半选状态计算错误的 bug

   * 【修改】同时选中父、子节点后,利用 getSelectedNodes 获取选中节点并利用 removeNode 删除时报错的 bug

   * 【修改】treeNode.chkDisabled / nocheck 属性,支持字符串格式的 "false"/"true"

   * 【修改】异步加载模式下无法利用 server 返回 xml 并且 在 dataFilter 中继续处理的 bug

   * 【修改】title 只允许设置为 string 类型值的问题。 修正后允许设置为 number 类型的值

   * 【修改】zId 计数规则 & Cache 保存,减少 IE9 的 bug 造成的内存泄漏

   * 【修改】API 页面搜索功能导致 IE 崩溃的 bug

 

分享到:
评论
28 楼 jackyrong 2012-10-11  
HI,想问下,加入用simpledata的形式,不用json的话,
能否实现如下的结构:

attachment:"
{attachmentId:1,attachmentname:"f6e71004-8487-41f7-ac18-b6fac9860753.pdf"},

{attachmentId:2,attachmentname:"1e40868d-0d7a-41f4-8018-9c2f29ad716c.pdf"}

"

?就是一个结点中,嵌套了多个?
27 楼 jackyrong 2012-09-29  
是的,我后来发现了!谢谢,处理办法为,根据
check_count.html(demo中的例子)



	function onCheck(e, treeId, treeNode) {
			count();
				//获得当前结点的父结点
		var halfCheck = treeNode.getParentNode().getCheckStatus();
   

	//alert(halfCheck.half);
	   var fullCheck=treeNode.getParentNode().checked;
		if (halfCheck.half==false&&halfCheck.checked==true)
		{
		alert("父亲结点被勾选"+treeNode.getParentNode().name);
		}
			
		}

26 楼 zTreeAPI 2012-09-29  
jackyrong 写道
请教下一个ztree中,checkbox的问题,比如想实现如下效果:
开发部这个结点下,有A,B,C三个人,A,B,C三个人前都有checkbox,当
分别勾选a,b,c三个人的后,并且点保存,这时候,因为全选了开发部下的三个人了,所以这个时候,要返回值是“开发部”这个值,但如果只选a,b两个人,则不用返回
开发部这个值,因为不是全选;我的思路是这样,但发现有问题:

1) 在开发部前面加一个全选的checkbox,当点这个checkbox后,则自然全选了下面的,A,B,C三个人了,这个时候很好办;但问题是,好像加入全选后,假如用户又去掉b的这个人前面的checkbox,则开发部这个前面的checkbox好像不会自动去掉。


2) 我目前是在oncheck事件中判断的,问题化归为:如果判断某个结点下的所有子结点已经勾选?如果都勾选,则返回其父结点的值。如果用javascript+ztree本身的API去实现,有什么思路么?


首先你可以利用 半勾选状态去判断,默认情况下只有子节点全部取消勾选后才会自动取消父节点的勾选。 参考:treeNode.getCheckStatus
25 楼 jackyrong 2012-09-28  
请教下一个ztree中,checkbox的问题,比如想实现如下效果:
开发部这个结点下,有A,B,C三个人,A,B,C三个人前都有checkbox,当
分别勾选a,b,c三个人的后,并且点保存,这时候,因为全选了开发部下的三个人了,所以这个时候,要返回值是“开发部”这个值,但如果只选a,b两个人,则不用返回
开发部这个值,因为不是全选;我的思路是这样,但发现有问题:

1) 在开发部前面加一个全选的checkbox,当点这个checkbox后,则自然全选了下面的,A,B,C三个人了,这个时候很好办;但问题是,好像加入全选后,假如用户又去掉b的这个人前面的checkbox,则开发部这个前面的checkbox好像不会自动去掉。


2) 我目前是在oncheck事件中判断的,问题化归为:如果判断某个结点下的所有子结点已经勾选?如果都勾选,则返回其父结点的值。如果用javascript+ztree本身的API去实现,有什么思路么?
24 楼 zTreeAPI 2012-09-28  
落落的月 写道
请问怎么指定加载菜单的层级?比如菜单json一共三层,我只需要显示一级、二级,不需要三级的,该怎么做啊?

你说的不需要是什么意思? 完全不显示吗? 那么只需要不要生成3级的数据就是了
23 楼 落落的月 2012-09-28  
请问怎么指定加载菜单的层级?比如菜单json一共三层,我只需要显示一级、二级,不需要三级的,该怎么做啊?
22 楼 zTreeAPI 2012-09-25  
cngolon 写道
请教个问题:
火狐报:TypeError: $.fn.zTree is undefined [在此错误处中断]
...
请对照 demo 的初始化方式查找错误,调整代码
21 楼 cngolon 2012-09-20  
请教个问题:
火狐报:TypeError: $.fn.zTree is undefined [在此错误处中断]
$.fn.zTree.init($("#tree"), setting, zNodes);//初始化树对象
在IE上提示:$.fn.zTree为空或不是对象,
js的加载顺序:zTreeStyle.css,jquery-1.7.2.min.js,jquery.ztree.core-3.4.js
请指点一下
**********************************************************
$(function(){
//单位树
var setting;
var zNodes =[
{name:"知识帮助导航栏", id:"-1", isParent:true} //初始化一个顶层默认节点
];
setting = {
async: { //异步加载
enable: true,
url: "${path}/callcenter/listNextKN.html",//异步加载URL
autoParam: ["id=0"]//需要传递的参数
},
expandSpeed: ""
};
$.fn.zTree.init($("#tree"), setting, zNodes);//初始化树对象
})
20 楼 zTreeAPI 2012-09-11  
jackyrong 写道
jackyrong 写道
jackyrong 写道
请教下,我的一个异步加载的TREE已经搞好了,但发现一个奇怪的问题,在一个SITEMESH修饰的页面中(一个模板页,由SITEMESH管理),是展开收缩树是沒问题的,但如果
不用SITEMESH修饰,单独的一个页面,一个下拉框(有A,B项目),当点A的时候,树的某个结点的展开和关闭也是沒问题的,但当点B项目下拉时,出现的B树中,发现展开某个结点后,会发现一闪地展开了这个结点下的子结点,但又突然很块地关闭了这些子结点,瞬间变成收缩状态,我的版本是3.1,请问大概会是什么问题?


补充一下,CHROME发现,
468event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.


已解决!是FORMVALIDATOR这个不错的插件用到的JQUERY和ZTREE用到的冲突了

19 楼 jackyrong 2012-09-11  
jackyrong 写道
jackyrong 写道
请教下,我的一个异步加载的TREE已经搞好了,但发现一个奇怪的问题,在一个SITEMESH修饰的页面中(一个模板页,由SITEMESH管理),是展开收缩树是沒问题的,但如果
不用SITEMESH修饰,单独的一个页面,一个下拉框(有A,B项目),当点A的时候,树的某个结点的展开和关闭也是沒问题的,但当点B项目下拉时,出现的B树中,发现展开某个结点后,会发现一闪地展开了这个结点下的子结点,但又突然很块地关闭了这些子结点,瞬间变成收缩状态,我的版本是3.1,请问大概会是什么问题?


补充一下,CHROME发现,
468event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.


已解决!是FORMVALIDATOR这个不错的插件用到的JQUERY和ZTREE用到的冲突了
18 楼 jackyrong 2012-09-11  
jackyrong 写道
请教下,我的一个异步加载的TREE已经搞好了,但发现一个奇怪的问题,在一个SITEMESH修饰的页面中(一个模板页,由SITEMESH管理),是展开收缩树是沒问题的,但如果
不用SITEMESH修饰,单独的一个页面,一个下拉框(有A,B项目),当点A的时候,树的某个结点的展开和关闭也是沒问题的,但当点B项目下拉时,出现的B树中,发现展开某个结点后,会发现一闪地展开了这个结点下的子结点,但又突然很块地关闭了这些子结点,瞬间变成收缩状态,我的版本是3.1,请问大概会是什么问题?


补充一下,CHROME发现,
468event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
17 楼 jackyrong 2012-09-11  
请教下,我的一个异步加载的TREE已经搞好了,但发现一个奇怪的问题,在一个SITEMESH修饰的页面中(一个模板页,由SITEMESH管理),是展开收缩树是沒问题的,但如果
不用SITEMESH修饰,单独的一个页面,一个下拉框(有A,B项目),当点A的时候,树的某个结点的展开和关闭也是沒问题的,但当点B项目下拉时,出现的B树中,发现展开某个结点后,会发现一闪地展开了这个结点下的子结点,但又突然很块地关闭了这些子结点,瞬间变成收缩状态,我的版本是3.1,请问大概会是什么问题?
16 楼 zTreeAPI 2012-09-09  
jackyrong 写道
...这个时候,onchange事件那个获得B的值得了,但问题沒有传入到后台的ACTION中,
那么想问下,
   otherParam:这个参数中,能否传入动态的值呢?比如只写一次ASYNC的异步加载代码,而otherParam能根据下拉框传入不同的值而设置,我现在是在ONCHANGE和
documentready中,都写了两次ASYNC的代码片段了

otherParam 的确没有扩展支持动态获取,但初始化 zTree 之后可以随意修改这个参数,只需要 zTreeObj.setting.async.otherParam 就可以修改了
15 楼 jackyrong 2012-09-09  
我现在还是用异步加载的方法了,但有个问题,因为页面初始化的时候,
默认是加载下拉框中A值对应的树(下拉框有A,B两个值),这个时候能正确加载了,
但如果我在下拉框中的onchange事件中,指定一个方法,比如:

onchange="change();"

然后change()中:
	
//获得B的值
var measurementname=$("#measurementtypeId").find("option:selected").text();


 async: {  
                enable: true,  
                url:"<%=basePath%>surveyquestionjson/getsurveyquestioncontroltree.action",  
                otherParam:["measurementname", measurementname],  
                dataFilter: filter
            }  
};


  这个时候,onchange事件那个获得B的值得了,但问题沒有传入到后台的ACTION中,
那么想问下,
   otherParam:这个参数中,能否传入动态的值呢?比如只写一次ASYNC的异步加载代码,而otherParam能根据下拉框传入不同的值而设置,我现在是在ONCHANGE和
documentready中,都写了两次ASYNC的代码片段了
14 楼 zTreeAPI 2012-09-08  
jackyrong 写道
补充下,
  用的是ztree 3.1,后台已经正确看到JSON返回的,字符串为:
[{.....},{......} .....],但前台提示:
Uncaught TypeError: Cannot call method 'replace' of undefined

错误代码行为:jquery.ztree.core-3.1.min.js

如果你一定要用自己的ajax 加载 nodes 后,再使用 init 初始化树也是完全木有问题的。
但是目前的问题是你两种方法的结果都是输出的数据无法被正常使用,所以请你检查一下数据所需要的字段是否都满足? 比如默认的 name 属性? id属性、pId 属性等。

另外调试代码时建议使用 未压缩的 zTree 版本,这样可以准确知道是哪一行代码出了问题,你也就知道什么原因了
13 楼 jackyrong 2012-09-07  
补充下,
  用的是ztree 3.1,后台已经正确看到JSON返回的,字符串为:
[{.....},{......} .....],但前台提示:
Uncaught TypeError: Cannot call method 'replace' of undefined

错误代码行为:jquery.ztree.core-3.1.min.js
12 楼 jackyrong 2012-09-07  
zTreeAPI 写道
jackyrong 写道
想请教下,比如我的页面中有一个下拉框列表,要求的是,当页面加载时,不显示树,
当用户选择下拉框的比如选项A时,则通过ajax到后台查询A对应的树的结点,显示在前台;
同理查询B的对应的树的结点,显示在前台,那么请教一下,这个功能的实现一定要用到
ZTREE中的异步加载去实现么?我的期望结构代码如下,但没报错,结点不能出来,请指教
...

你这种需求只需要 做一个 异步加载的 tree 即可;每次选择了 下拉框内容以后,就修改 异步加载的参数,init 初始化 zTree 即可!



我现在代码如下

var setting = {
	callback: {
				//beforeClick: beforeClick,
				//onClick: onClick
				
			},

		data: {
		simpleData: {
			enable: true,
			idKey: "id",
			pIdKey: "pId",	
			rootPId: 0
		}
	},
	 async: {  
                enable: true,  
                url:"<%=basePath%>surveyquestionjson/getsurveyquestioncontroltree.action",  
                otherParam:["measurementname", measurementnameinit],  
                dataFilter: filter
            }  
};
				
function filter(treeId, parentNode, childNodes) {
		
			if (childNodes) {
				alert("count"+ childNodes.length);
      for(var i =0; i < childNodes.length; i++) {
        childNodes[i].name += "_filter"; 
		//alert(childNodes[i].name);
      }
    }
	 
	  		return childNodes;
		}

		$(document).ready(function(){
			
			$.fn.zTree.init($("#treeDemo"), setting);
					
				
		});



  用的是ztree 3.1,后台已经正确看到JSON返回的,字符串为:
[{.....},{......} .....],但前台提示:
Uncaught TypeError: Cannot call method 'replace' of undefined
11 楼 jackyrong 2012-09-07  
zTreeAPI 写道
jackyrong 写道
想请教下,比如我的页面中有一个下拉框列表,要求的是,当页面加载时,不显示树,
当用户选择下拉框的比如选项A时,则通过ajax到后台查询A对应的树的结点,显示在前台;
同理查询B的对应的树的结点,显示在前台,那么请教一下,这个功能的实现一定要用到
ZTREE中的异步加载去实现么?我的期望结构代码如下,但没报错,结点不能出来,请指教
...

你这种需求只需要 做一个 异步加载的 tree 即可;每次选择了 下拉框内容以后,就修改 异步加载的参数,init 初始化 zTree 即可!



其实用我之前的方法是不能实现么?
10 楼 zTreeAPI 2012-09-07  
jackyrong 写道
想请教下,比如我的页面中有一个下拉框列表,要求的是,当页面加载时,不显示树,
当用户选择下拉框的比如选项A时,则通过ajax到后台查询A对应的树的结点,显示在前台;
同理查询B的对应的树的结点,显示在前台,那么请教一下,这个功能的实现一定要用到
ZTREE中的异步加载去实现么?我的期望结构代码如下,但没报错,结点不能出来,请指教
...

你这种需求只需要 做一个 异步加载的 tree 即可;每次选择了 下拉框内容以后,就修改 异步加载的参数,init 初始化 zTree 即可!
9 楼 jackyrong 2012-09-07  
想请教下,比如我的页面中有一个下拉框列表,要求的是,当页面加载时,不显示树,
当用户选择下拉框的比如选项A时,则通过ajax到后台查询A对应的树的结点,显示在前台;
同理查询B的对应的树的结点,显示在前台,那么请教一下,这个功能的实现一定要用到
ZTREE中的异步加载去实现么?我的期望结构代码如下,但没报错,结点不能出来,请指教


		function getmeasurementcontrol()
		{
			
var treeNodes;
	var zTreeObj;
var setting = {
	callback: {
				//beforeClick: beforeClick,
				//onClick: onClick
				
			},

		data: {
		simpleData: {
			enable: true,
			idKey: "id",
			pIdKey: "pId",	
			rootPId: 0
		}
	}
};
				var measurementname=$("#measurementtypeId").find("option:selected").text();
				var datastring;
				alert("measurement name"+measurementname);
				$.ajax({
				type:"POST",
				url:"<%=basePath%>surveyquestionjson/getsurveyquestioncontroltree.action",
				data:"measurementname=" + measurementname,
				dataType:"json",
				success:function(data){

				    alert("data is"+data);
				 treeNodes = data; 
				
	alert("treenodes "+treeNodes );
				}	
					
				});
					zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, treeNodes);
					
		}

   其中getmeasurementcontrol是当用户点下拉框时的onchange事件
  

相关推荐

    JQuery zTree v3.4 ztree

    JQuery zTree 是一个基于 jQuery 的插件,用于在网页中构建交互式的树形结构。v3.4 版本是其稳定且功能丰富的版本之一,适用于多种应用场景,如数据展示、导航菜单、文件目录等。它以其易用性、高效性和强大的功能...

    zTree V3.4

    zTree V3.4是一款基于JavaScript的开源树形插件,广泛应用于网页界面中的数据展示和操作,尤其适合处理层级结构的数据。它以其强大的功能、灵活的配置和友好的API接口,深受开发者喜爱。在这款压缩包中,包含了zTree...

    jQuery_zTree_v3.4

    zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。专门适合项目开发,尤其是 树状菜单、树状数据的Web显示、权限管理等等。 zTree 是开源免费的软件...

    JQuery zTree v3.3

    JQuery zTree是一款基于JavaScript的开源树...总之,JQuery zTree v3.3是一个强大且易用的JavaScript树形插件,它通过提供多种操作功能、良好的性能以及灵活的定制选项,满足了开发者在构建网页树形结构时的各种需求。

    JQuery-zTree-v2.6.rar_Java 8_jquery tree_jquery-ztree-2.6.js_jqu

    2、在一个页面内可同时生成多个 Tree 实例 3、支持 JSON 数据 4、支持一次性静态生成 和 Ajax 异步加载 两种方式 5、支持多种事件响应及反馈 6、支持 Tree 的节点移动、编辑、删除 7、支持极其灵活的 checkbox...

    全网jquery.tree树形菜单打包下载(zTree&jquery-ui&treeview共四种)

    这个压缩包包含四个不同的jQuery树形插件:zTree、jQuery UI Treeview、jQuery UI Draggable Tree和jQuery Simple Treeview。这些插件各有特色,适用于不同的项目需求。 首先,zTree是一款功能强大的jQuery插件,...

    jQuery 树形结构插件 zTree

    **jQuery zTree 插件详解** zTree 是一个基于 jQuery 的强大树形控件,它在Web开发中被广泛应用于构建动态的、交互式的树形结构。zTree 的设计目标是提供高性能、易于配置和丰富的功能,使得开发者可以轻松地在网页...

    Jquery-ztree树形菜单代码并适应移动端

    JQuery-zTree是一款基于jQuery的树形插件,它提供了丰富的功能和良好的性能,尤其适用于构建树形结构的菜单和数据展示。在移动端应用中,zTree能够自适应屏幕尺寸,提供良好的用户体验。本项目提供的代码是针对...

    archive_zTree(JQuery Tree) v3.1.zip.zip

    【标题】"archive_zTree(JQuery Tree) v3.1.zip.zip" 提供的是一个用于构建树形结构的jQuery插件——zTree的v3.1版本。zTree是一款广泛应用于网页开发中的JavaScript库,它使得在网页上展示层级关系的数据变得更加...

    JQuery zTree v2.6

    JQuery zTree是一款基于JavaScript的树形插件,其v2.6版本在功能和性能上进行了优化,为开发者提供了更强大的树形结构处理能力。这个版本的zTree不仅包含了完整的API文档,还附带了一系列经典实例,便于开发者理解和...

    JQuery实现树插件 Ztree

    JQuery实现树插件Ztree是一个广泛使用的轻量级前端组件,它为Web开发者提供了构建交互式树形结构的便捷工具。Ztree基于流行的JavaScript库JQuery,因此,如果你已经熟悉JQuery,那么掌握Ztree将相对容易。在本文中,...

    jquery.ztree.excheck.js

    是一个js,ztree实现权限管理所需的,可自行去ztree官网下载

    JQuery zTree v3.5 api

    jQuery zTree 是一款基于 jQuery 的树形插件,广泛应用于网站导航、组织结构展示、文件目录管理等多种场景。v3.5 版本是其一个重要的里程碑,它提供了丰富的功能和优化的性能,使得开发者能够更加灵活地构建树形结构...

    JQuery zTree v3.2 最新版

    Tree 感兴趣或者愿意资助 zTree 继续发展下去,可以进行捐助。 zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀 兼容 ...

    JQueryTree zTree

    `JQueryTree` 和 `zTree` 是两个基于JavaScript库,尤其是jQuery框架的插件,用于实现动态、交互式的树形组件。 **JQueryTree** `JQueryTree` 是一个轻量级的jQuery插件,主要用于构建可操作的HTML5树视图。它提供...

    jquery.zTree.js.rar

    jquery-1.4.4.min.js jquery.ztree.exhide.min.js jquery.ztree.exedit.min.js jquery.ztree.excheck.min.js jquery.ztree.core.min.js jquery.ztree.all.min.js jquery-1.4.4.js jquery.ztree.exhide.js jquery....

    JQuery zTree v3.5.14

    **jQuery zTree v3.5.14** 是一个基于jQuery的树形插件,它在Web开发中广泛用于创建交互式的树形结构。这个版本3.5.14是zTree的一个稳定版本,提供了丰富的功能和优化的性能。下面我们将深入探讨zTree的核心特性、...

Global site tag (gtag.js) - Google Analytics