实现ztree结合jquery的smartMenu.js插件对目录树的增删改查

 

问题:项目上遇到一个问题,需要作出一个目录树显示相关内容的层级结构关系。

插件:

目录树插件,在这里我选用了ztree,十分方便好用(UI有待提升哈~)下方是ztree插件 需要的自取

ztree插件

jquery.smartMenu.js,一个右击鼠标出现菜单栏的插件。感兴趣的自己百度一下。

代码:

html部分:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>物理位置管理</title>
		<link rel="stylesheet" type="text/css" href="css/zTreeStyle.css"/>
		<link rel="stylesheet" type="text/css" href="css/smartMenu.css"/>
	</head>
	<body>
		<div class="wrap">
			<div id="treePhy" class="ztree"></div>
		</div>
	</body>
	<script src="js/jquery-2.1.1.min.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/jquery.ztree.all.min.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/jquery-smartMenu-min.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/locationSet.js" type="text/javascript" charset="utf-8"></script>
</html>

js部分(locationSet.js):

		var zTreeObjPhy;
		// zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解)
		var setting = {
			check: {
				enable: false
			},
			view: {
				//双击节点是否展开
				dblClickExpand: true
			},
			edit: {
				enable: true,
				showRemoveBtn: false,
				showRenameBtn: false,
				drag:{
					isCopy:false,
					isMove:false
				}
			},
			data: {
				key: {
					children: "children",
					name: "name",
					title: "id",
					url: "link"
				},
				simpleData: {
					//使用简单数据模式,不需要用户再把数据库中取出的 List 强行转换为复杂的 JSON 嵌套格式
					enable: true
				}
			}
		};
		var oldarr = [];//同级的名称
		var oldarr2 = [];//下一级的名称
		var namelastname='';
		var istwoname_obj;
		var gettime = function(){
			var timestamp=new Date().getTime();
			return timestamp
		}
		var addCount = 1;
		function addTreeNode() {               //增
			var name = "增加" + namelastname;
			var id = gettime()+'';
			id=Number(id.substr(-10));
			
			var parentid=zTree.getSelectedNodes()[0].id+"";
			if(oldarr2.indexOf(name)>-1){
				alert('新增加的名称为 "'+ name +'" 与原列表中的名称有重复,请先修改原名称')
				return false;
			}
			if (zTree.getSelectedNodes()[0]) {
				console.log('增加');
				zTree.addNodes(zTree.getSelectedNodes()[0], {id:id, pId:parentid, name:name});
//				$.ajax({
//					type: "post",
//					url: "url",
//					async: true,
//					dataType: "json",
//					contentType: "application/json",
//					data: JSON.stringify({
//						"id":id,
//						"parentid": parentid,
//						"name": name
//					}),
//					success: function (data) {
//						console.log(data);
//						if(data.code==0){
//							alert("添加成功");
//							zTree.addNodes(zTree.getSelectedNodes()[0], {id:id, pId:parentid, name:name});
//						}else{
//							alert("请展开目录后添加");
//						}
//					},
//					error: function(){
//						alert("请求失败");
//					}
//				});
 
 
 
 
 
			} else {
				zTree.addNodes(zTree.getSelectedNodes()[0], {id:id, pId:0, name:newNode.name});
			}
			
		}
		function removeTreeNode() {              //删除
			var nodes = zTree.getSelectedNodes();
			if (nodes && nodes.length>0) {
				if(confirm("确认删除 节点吗?")){
					console.log('删除');
					if (nodes[0].children && nodes[0].children.length > 0) {
						var msg = "要删除的节点是父节点,如果删除将连同子节点一起删掉。\n\n请确认!";
						if (confirm(msg)==true){
							zTree.removeNode(nodes[0]);
							alert("删除成功");
						}
					} else {
						zTree.removeNode(nodes[0]);
						alert("删除成功");
					}
//					$.ajax({
//						type: "post",
//						url: "url",
//						async: true,
//						dataType: "json",
//						contentType: "application/json",
//						data: JSON.stringify({
//							"id": nodes[0].id
//						}),
//						success: function (data) {
//							if (nodes[0].children && nodes[0].children.length > 0) {
//								var msg = "要删除的节点是父节点,如果删除将连同子节点一起删掉。\n\n请确认!";
//								if (confirm(msg)==true){
//									zTree.removeNode(nodes[0]);
//									alert("删除成功");
//								}
//							} else {
//								zTree.removeNode(nodes[0]);
//								alert("删除成功");
//							}
//						},
//						error: function(){
//							alert("请求失败");
//						}
//					});
				}
			}
		}
 
		function edit() {         //编辑
			var zTree = $.fn.zTree.getZTreeObj("treePhy");
			var nodes = zTree.getSelectedNodes();
			
			treeNode = nodes[0];
			
			if (nodes.length == 0) {
				alert("请先选择一个节点");
				return;
			}
			zTree.editName(treeNode);
			
		};
 
		var zTree, rMenu;
		$(document).ready(function(){
			var zNodes =[];
//			$.ajax({
//	           type: "post",
//	           url: "url",
//	           async: false,
//	           dataType: "json",
//	           contentType: "application/json",
//	           data: JSON.stringify({ }),
//	           success:function(data){
//	           		if(data.code==0){
//	           		    var tree = data.data;
//	           		    for(var i=0,len=tree.length;i<len;i++){
//							if(i==0){
//								zNodes.push({ 
//		           		        	id:tree[i].id,
//		           		        	pId:tree[i].parentid,
//		           		        	name:tree[i].name,
//		           		        	open:true,
		           		        	noR:true
//		           		        });
//							}else{
//								zNodes.push({ 
//									id:tree[i].id,
//									pId:tree[i].parentid,
//									name:tree[i].name,
//								});
//							}
//	           		    }
//	           		}
//	           }
//	       });
	       	var zNodes=[//页面初始数据
				{ id:1, pId:0, name:"智能照明系统", open:true},
				{ id:11, pId:1, name:"大楼1", open:true},
				{ id:111, pId:11, name:"楼层1-1"},
				{ id:112, pId:11, name:"楼层1-2"},
				{ id:12, pId:1, name:"大楼2", open:true},
				{ id:121, pId:12, name:"楼层2-1"},
				{ id:122, pId:12, name:"楼层2-2"},
				
			]
	       
			$.fn.zTree.init($("#treePhy"), setting, zNodes);
			zTree = $.fn.zTree.getZTreeObj("treePhy");
			rMenu = $("#rMenu");
		});
		
/*鼠标右击弹出事件 smartMenu部分*/
		var MenuData = [
    [{
    	text:"新增",
    	func:function() {//增加 
    		addTreeNode();
		}
    },
    {
    	text:"编辑",
    	func:function(){
    		edit();
    	}
    }
    ],
    [{
    	text:"删除",
    	func:function(){
    		removeTreeNode();
    	}
    }]
];
$("#treePhy").smartMenu(MenuData);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值