jquery和zTree 树结构的测试demo 2

本文介绍如何使用zTree插件构建短信和邮件通讯录,包括初始化树状结构、加载数据、实现复选框功能及根据选择更新输入框等。
js代码:      

        $(function(){
		
		initTree("dxTxl",CONST_URL.LOAD_DXTREE,"id","yhzid");//初始化短信通讯录
		initTree("yjTxl",CONST_URL.LOAD_YJTREE,"id","yhzid");//初始化邮件通讯录

        }

        //构建zTree
	function  initTree(zTreeID,url,id,pid) {
		  var setting = {
				check: {
			        enable: true  //显示checkbox
			    },  
				data: {
			          key: {name:"xm"},
			          simpleData: {
			              enable: true,
			              idKey : "id",
			              pIdKey : "yhzid" 
			          }
			    },
			    callback: {
					onCheck: getCheckedData   // checkbox 值改变触发的方法
			    }
		};	
		$.ajax({
	               type: "get",
	               dataType: "json",
	               url: url,
	               success: function(data){
	                  $.fn.zTree.init($("#"+zTreeID), setting, data.data); 
	               }
	   });
	}

        //触发的方法
        function getCheckedData(e,treeId,treeNode){
		if(treeNode.checked){  //勾选操作
			if (treeNode.isParent) {  //判断是否为父节点
				 var childrenNodes = treeNode.children;  // 获取子节点的对象
				 if (childrenNodes){
					 $.each(childrenNodes,function(){
                                             setDxOrYj(this);   //往输入框set值
                                         });
				 }
			}else{
				setDxOrYj(treeNode);
			} 
		}else{ //取消勾选操作
			if (treeNode.isParent) {
				 var childrenNodes = treeNode.children;
				 if (childrenNodes){
					 $.each(childrenNodes,function(){
                                              clearDxOrYj(this); // 清空输入框的值
                                         });
				 }
			}else{
				clearDxOrYj(treeNode);
			}
		}
	}
	//往收信人输入框set值
	function setDxOrYj(treeNode){
		if(treeNode.txllx=="001"){ //短信通讯录
			if($('#dxsxr').val()==""){
				$('#dxsxr').val(treeNode.sj);
			}else{
				$('#dxsxr').val($('#dxsxr').val()+";"+treeNode.sj);
			}
		}else if(treeNode.txllx=="002"){ //邮件通讯录
			if($('#yjsjr').val()==""){
				$('#yjsjr').val(treeNode.dzyj);
			}else{
				$('#yjsjr').val($('#yjsjr').val()+";"+treeNode.dzyj);
			}
		}
	}
	//消除收信人输入框的值
	function clearDxOrYj(treeNode){  
		var data = "";
		if(treeNode.txllx=="001"){ //短信通讯录
			var dxdata = ($('#dxsxr').val()).split(";");
			for(var i=0;i<dxdata.length;i++){
				if(treeNode.sj!=dxdata[i]) {
					if(data==""){data += dxdata[i];}
					else{data += ";"+dxdata[i];}
				};
			}
			$('#dxsxr').val(data);
		}else if(treeNode.txllx=="002"){ //邮件通讯录
			var yjdata = $('#yjsjr').val().split(";");
			for(var i=0;i<yjdata.length;i++){
				if(treeNode.dzyj!=yjdata[i]) {
					if(data==""){data += yjdata[i];}
					else{data += ";"+yjdata[i];}
				};
			}
			$('#yjsjr').val(data);
		}
	}


     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值