【学习拾遗】Jquery(三)--ztree


  上个项目中,做树用的是EasyUI的Tree,想起来以前看到的ztree,正好趁着回顾Jquery和ztree混个脸熟!

一、实现


样式和Js文件


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


html和Js


<body>
	<div id="tree" class="ztree">div1</div>
</body>
<script type="text/javascript">
	

	$(function(){
		//设置节点源
		var nodes = [
					//{id:"1", pId:"0", name: "父节点1",nodeurl:"www.baidu.com"},
					{id:"11", pId:"1", name: "用户管理",nodeurl:"www.baidu.com"},
					{id:"111", pId:"11", name: "添加用户",nodeurl:"www.baidu.com"},
					{id:"112", pId:"11", name: "修改用户",nodeurl:"www.baidu.com"},
					{id:"113", pId:"11", name: "删除用户",nodeurl:"www.baidu.com"},
					{id:"12", pId:"1", name: "部门管理",nodeurl:"www.baidu.com"},
					{id:"121", pId:"12", name: "添加部门",nodeurl:"www.baidu.com"},
					{id:"122", pId:"12", name: "删除部门",nodeurl:"www.baidu.com"}
				];
		//ztree的配置信息
		var setting={
			view: {
				dblClickExpand: true,//双击节点,展开
				showLine: true,
				selectedMulti: false
			},
			data: {
				simpleData: {
					enable:true,
					idKey: "id",
					pIdKey: "pId",
					rootPId: ""
				}
			},
			callback:{
				onClick:zTreeOnClick,
				beforeExpand:zTreeBeforeExpand 
			}
		}
		
		
		
		//var t = $("#tree");
		//t = $.fn.zTree.init(t, setting, nodes);//初始化节点信息
		
		
		t=$.fn.zTree.init($("#tree"),setting,nodes);

		
		//var zTree = $.fn.zTree.getZTreeObj("tree");
		
		//设置选中的节点
		//zTree.selectNode(zTree.getNodeByParam("id", 1));
		
		//设置展开哪个节点,其中第一个参数,表示是否展开节点,第二个参数表示子节点是否也同样展开,第三个参数
		t.expandNode(t.getNodeByParam("id", 11), true, true, false);
		
		var treeObj = $.fn.zTree.getZTreeObj("tree");
		//var nodelist = treeObj.getNodes();
		
		//alert(nodelist.length)
		
		//ztree响应单击函数
		function zTreeOnClick(event, treeId, treeNode) {	
		alert(treeNode.getParentNode().name+"的第"+t.getNodeIndex(treeNode)+"个节点------"+"节点ID:"+treeNode.id + "-------节点名称 " + treeNode.name);
			
			//获取节点级别
			//alert(treeNode.level)
				
			//var Idnode = treeObj.getNodeByTId("11");
			//alert(Idnode.name)
		};
		
		function zTreeBeforeExpand(treeId, treeNode){
		    var treeObj = $.fn.zTree.getZTreeObj("tree");
			//treeObj.expandAll(false);
			var nodelists=treeObj.getNodes();
			for(var i=0;i<nodelists.length;i++){
				//alert(nodelists[i].id+"----"+nodelists[i].name)
				//alert(treeObj.getNodeByParam("id",nodelists[i].id,null).level)
			}
		}
	})
</script>


代码注释已经很明白了,大致的流程就是

1、setting设置,设置树的Id,父Id以及节点名称所用的字段

2、准备菜单数据,这里简单json格式的(和Easyui的一模一样)

3、初始化树

4、操作tree



效果如下:




二、小结

  ztree和easyui的树,基本没什么两样,不过好像ztree的功能已经封装的属性和函数多了点^_~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值