jquery ztree 源目录只能够添加一级目录,子节点添加新的节点到当前节点下方

jquery ztree 根目录只能够添加一级目录,子节点添加新的节点到当前节点下方

这周老板要求用zTree 做东西: 根目录只能够添加一级目录,子节点添加新的节点到当前节点下方

<!DOCTYPE html>
<html>
<head>
	<title>jquery-ztree</title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="css/zTreeStyle/zTreeStyle.css">
	<link rel="stylesheet" type="text/css" href="css/demo.css">

	<script type="text/javascript" src="js/jquery-2.1.1.js"></script>
	<script type="text/javascript" src="js/jquery.ztree.all-3.5.min.js"></script>
	<style type="text/css">
		.ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position:-144px 0; vertical-align:top; *vertical-align:middle}
	</style>
	<script type="text/javascript" >
	var zTreeObj;
	var zNodes =[
			{ id:1, pId:0, name:"父节点 1",isParen:true, open:true},
			{ id:11, pId:1, name:"叶子节点 1-1"},
			{ id:12, pId:1, name:"叶子节点 1-2"},
			{ id:13, pId:1, name:"叶子节点 1-3"},
			{ id:14, pId:1, name:"叶子节点 1-4"},
			{ id:15, pId:1, name:"叶子节点 1-5"},
			{ id:16, pId:1, name:"叶子节点 1-6"},
			{ id:17, pId:1, name:"叶子节点 1-7"},
			{ id:18, pId:1, name:"叶子节点 1-8"},
			
		];
		
	
	setting={
		data: {
				simpleData: {
					enable: true,
				},
		},

		edit:{
			enable:true,
			editNameSelectAll: true,
			renameTitle: "编辑节点名称",
			showRemoveBtn: showRemoveBtn,
			drag:{
				inner: false,
			}
		},
		view:{
			addHoverDom: addHoverDom,
			removeHoverDom: removeHoverDom,
		},
	};

	function showRemoveBtn(treeId, treeNode) {
			return !treeNode.isParent;
	}

	function newleafTId(arr){
		var num=0;
		var max=0;
		for(var i=0;i<arr.length;i++){
			var str=arr[i].tId;
			num=parseInt(str.split("_")[1]);
			if(num>=max){
				max=num;
			}
			var tId="tree_"+max;
		}
		return tId;
	}
	
	
	var newCount = 1;
	function addHoverDom(treeId, treeNode) {
			/*获取当前节点的父节点,根节点为自己	parNode*/
			var treeObj = $.fn.zTree.getZTreeObj("tree");
			var nodea = treeObj.getNodeByTId(treeNode.parentTId);
			var parNode=(nodea===null?treeNode:nodea);

			var  sObj = $("#" + treeNode.tId + "_span");
			if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
			var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
				+ "' title='add node' onfocus='this.blur();'></span>";
			sObj.after(addStr);

			var btn = $("#addBtn_"+treeNode.tId);
			if (btn) btn.bind("click", function(){
				var zTree = $.fn.zTree.getZTreeObj("tree");
				zTree.addNodes(parNode, {id:(100 + newCount), pId:parNode.id, name:"new node" + (newCount++)});

				//在叶子节点添加新节点的时候,新的节点在叶子节点下方
				if (nodea!=null) {
					var	 nodes = treeObj.getNodes()[0].children;
					var  newTId=newleafTId(nodes);
					var node1 = treeObj.getNodeByTId(treeNode.tId);
					var node2 = treeObj.getNodeByTId(newTId);
					treeObj.moveNode(node1, node2, "next"); 
				};
				return false;
			});
			
		};
		function removeHoverDom(treeId, treeNode) {
			$("#addBtn_"+treeNode.tId).unbind().remove();


		};


	$(function(){
		zTreeObj = $.fn.zTree.init($("#tree"), setting, zNodes);
	})

	</script>
</head>
<body>
	<div  style="margin-left: 200px;">
		<ul id="tree" class="ztree"></ul>
	</div> 
</body>
</html>

 源文件: