zTree异步加载并初始化树时全部展开
如果父节点数量很大,请注意利用延时进行控制,避免异步进程过多。因此需要用延迟加载的方式控制。
<link rel="stylesheet" href="css/demo.css" type="text/css"> <link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script> <SCRIPT type="text/javascript"> var setting = { async: { enable: true, url:"../ajaxGetNodes.php", autoParam:["id", "name=n", "level=lv"], otherParam:{"otherParam":"zTreeAsyncTest"}, dataFilter: filter, type: "get" }, callback: { beforeAsync: beforeAsync, onAsyncSuccess: onAsyncSuccess } }; function filter(treeId, parentNode, childNodes) { if (!childNodes) return null; for (var i=0, l=childNodes.length; i<l; i++) { childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.'); } return childNodes; } function beforeAsync() { curAsyncCount++; } function onAsyncSuccess(event, treeId, treeNode, msg) { curAsyncCount--; if (curStatus == "expand") { expandNodes(treeNode.children); } else if (curStatus == "async") { asyncNodes(treeNode.children); } if (curAsyncCount <= 0) { curStatus = ""; } } var curStatus = "init", curAsyncCount = 0, goAsync = false; function expandAll() { if (!check()) { return; } var zTree = $.fn.zTree.getZTreeObj("treeDemo"); expandNodes(zTree.getNodes()); if (!goAsync) { curStatus = ""; } } function expandNodes(nodes) { if (!nodes) return; curStatus = "expand"; var zTree = $.fn.zTree.getZTreeObj("treeDemo"); for (var i=0, l=nodes.length; i<l; i++) { zTree.expandNode(nodes[i], true, false, false);//展开节点就会调用后台查询子节点 if (nodes[i].isParent && nodes[i].zAsync) { expandNodes(nodes[i].children);//递归 } else { goAsync = true; } } } function check() { if (curAsyncCount > 0) { return false; } return true; } $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting); setTimeout(function(){ expandAll("treeDemo"); },1000);//延迟加载 }); </SCRIPT>
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码