ztree异步加载时勾选父节点自动勾选全部子节点

本文介绍了一个使用ZTree实现的异步加载样本模板树的案例,详细展示了配置设置,包括启用异步加载、自定义节点参数、检查功能及回调函数。通过定时器延时加载,避免了数据量大时的性能瓶颈,确保了子节点的高效加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键代码:

//选择样本模板树
    var model_sample_ztree, model_sample_zNode;
    var modelsample_setting = {
            async: {
                enable: true,
                url:"admin/sample/modelSampleList",
                autoParam:["id","level=lv"]
            },
            check:{
                enable:true,
                chkboxType: {"Y":"ps", "N":"ps"}
            },
            data:{
                 simpleData : {
                        enable : true,
                        idKey : "id", //id编号命名 默认
                        pIdKey : "pid",//父id编号命名默认
                        rootPId : 0 //用于修正根节点父节点数据,即 pIdKey 指定的属性值  
                    }  
            },
            callback:{    
                onAsyncSuccess:zTreeOnAsyncSuccess,//树加载成功时的回调函数
            }
    };

加载成功的回调函数

/**
	* 加载成功的回调函数 
	* 树第一次加载成功则强制异步加载子节点
	* 展开其下面的子节点
	*/
	function zTreeOnAsyncSuccess(){
		//防止数据量过大,延迟加载
		 setTimeout(function(){		
		    var treeObj =  $.fn.zTree.getZTreeObj("ztree_modelsample");
		    var rootNodes = treeObj.transformToArray(treeObj.getNodes());
		    //循环判断该节点是否已加载子节点,是则进入下一次循环,否则加载子节点,确保加载子节点只加载一次,若加载多次会影响效率
		    for(var i=0; i<rootNodes.length; i++){
		        if(rootNodes[i].zAsync == false)
		            treeObj.reAsyncChildNodes(rootNodes[i], "refresh",true);    
		        else continue;
		    }
		  },1000);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值