ZTREE学习

     公司开发需要用到jquery的ZTREE,结合公司代码和网上的事例学习了下,写点总结希望以后能用上,随着学习慢慢补充吧。

     ZTREE的官网例子和JS地址:http://code.google.com/p/jquerytree/

     首先,要在JSP中引入js文件和css文件

    

<script type="text/javascript" src="jquery.ztree-2.6.js"></script>
<link rel="stylesheet" href="zTreeStyle/zTreeStyle.css" type="text/css">

 

var zTree1;
var setting;
setting = {
			editable: false,
			checkable: false,
			showIcon : false,
			edit_renameBtn : false,
			edit_removeBtn : false,	
			
			callback: {
			//点击触发的方法
				rightClick: zTreeOnRightClick,
				mouseDown: zTreeOnMouseDown,
				click: zTreeOnClick
			}
		};
方法:
function zTreeOnRightClick(event, treeId, treeNode) {
			if (null == treeNode) {
				return false;
			}
			var level = treeNode.level;
			clickedId =  treeNode.id;
			if (level == 0) {
				zTree1.selectNode(treeNode);
				showRMenu("root", event.clientX, event.clientY);
			} else if (level == 1) {
				zTree1.selectNode(treeNode);
				showRMenu("region", event.clientX, event.clientY);
			} else if (level == 2) {
				zTree1.selectNode(treeNode);
				showRMenu("point", event.clientX, event.clientY);
			} else if(level == 3) {
				zTree1.selectNode(treeNode);
				showRMenu("device", event.clientX, event.clientY);
			}
		}	
节点:
		var zNodes = [
	    	{id:000, name:"监控点列表", open:true,
	    		nodes: ${strTree}
•	(json类型的数据格式是:id:””,nodes:[如果有和外边一样],name:””)
•	例子:
•	[{"id":"1",
•	"nodes":[	{"id":"1","nodes":[],"name":"mp1"},
	{"id":"2","nodes":[],"name":"mp2"},
	{"id":"3","nodes":[],"name":"mp3"}],
"name":"region1"},

{"id":"2",
"nodes":[  {"id":"4","nodes":[],"name":"mp4"},
{"id":"5","nodes":[],"name":"mp5"}],
"name":"region2"},
		    }						
		];
zTree1 = $("#treeDemo").zTree(setting, zNodes);

  

一、以下是ZTREE的一些常用的方法和方法返回值:

1、zTree.getNodes()      

 获取全部节点数据,不管是否采用简单数据模式(isSimpleData = true),都返回树形结构的 JSON 数据

[
    {"id":1, "name":"test1", "nodes":[
      {"id":11, "name":"test11", "nodes":[
        {"id":111, "name":"test111"}
      ]},
      {"id":12, "name":"test12"}
    ]},
    ......
];

 2、zTree. getNodeByParam(key, value) 

根据节点数据的属性精确搜索满足条件的的 JSON 数据对象,如果有多个同样属性值的节点,则只返回第一个找到的节点。

 3、zTree.getNodesByParam(key, value, parentNode)

获取某个节点下key=value的节点数据。

 4、zTree.getNodesByParamFuzzy(key, value[, parentNode])

根据节点数据的属性模糊搜索指定节点 parentNode 下面的子节点中key=value的 JSON 数据对象集合。当parentNode为空时,搜索全部节点。

 5、zTree.addNodes(parentNode, newNodes, isSilent)

参数:

parentNode: 指定的父节点,如果增加根节点,请设置 parentNode 为 null 即可。

newNodes  : Array(JSON)类型,需要增加的节点数据 JSON 对象集合,支持将节点的n级子节点一次性增加,只需要符合zTree的节点数据结构即可。

isSilent       : Boolean类型,设定增加节点后是否展开其父节点。isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

 6、zTree.removeNode(treeNode)

删除某个节点。

 7、zTree.getSelectedNode()

获取 zTree 当前被选中的节点数据 JSON 对象。

 8、zTree.transformToArray(treeNodes)(这个方法我也不是很理解,感觉是将选定的节点转换成一个Array)

将 zTree 使用的标准格式转换为简单 Array 格式,便于将数据返回给后台

 9、zTree.selectNode(treeNode)

选中某个节点。

10、zTree.getNodeByTId(tID)

根据某个节点数据的 tId 属性获取该获取该节点的 JSON 数据对象

11、 zTree.moveNode(targetNode, treeNode, moveType)

将某节点移动到其他节点下

targetNode     :指定移动到的目标节点 JSON 数据,如果移入根节点,请设置 targetNode 为 null 即可

treeNode        :指定被移动的节点 JSON 数据

moveType       :指定移动到目标节点的相对位置("inner":成为子节点(默认值),"before":成为同级前一个节点,"after":成为同级后一个节点)

 二、setting的属性:

1、 expandSpeed 展开、折叠效果  'fast'(default)  、 'slow'、  ''三种,其中 '' 表示展开、折叠效果关

2、 setting1.isSimpleData = false;

       setting1.treeNodeKey = "id";

       setting1.treeNodeParentKey = "pId";

       isSimpleData = false时需要传json数据,=true时需要传array数据

 3、showLine    是否显示节点之间的连线。

 4、editable      是否允许节点移动。

 5、dragCopy   拖拽节点时进行复制。

 6、dragMove   拖拽节点时进行移动。

三、事件监控

 1、 beforeClick()

 2、 beforeDblclick()

 3、 beforeRightClick()

 4、 beforeMouseDown()

 5、 beforeMouseUp()

 6、 beforeChange()

 7、 beforeDrag()

 8、 confirmDragOpen()

 9、 beforeDrop()

 10、beforeRename()

 11、confirmRename()

 12、beforeRemove()

 13、beforeExpand()

 14、beforeCollapse()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值