ztree的使用2-异步加载全部展开处理并处理唯一radio选中的方法
1:继承上篇文章,处理异步加载所有节点的方法
2:引入样式及类库
<!-- jquery ztree css -->
<link rel="stylesheet" href="${ctx}/resources/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
<!-- jquery ztree 出现两个radio框
<script src="${ctx}/resources/ztree/js/jquery.ztree.all-3.3.js"></script>
-->
<script src="${ctx}/resources/ztree/js/jquery.ztree.core-3.3.js"></script>
<script src="${ctx}/resources/ztree/js/jquery.ztree.excheck-3.3.js"></script>
<script src="${ctx}/resources/ztree/js/jquery.ztree.exedit-3.3.js"></script>
3:设置
var setting = {
data: {
simpleData: {
enable: true
}
},
check: {
enable: true,
chkStyle: "radio",//
radioType: "all"//还有这里,ALL标识整个Tree只准选中一个节点
},
async : {
enable : true,
url : "${ctx}/main/getClassTreeData.do",
autoParam : [ "id"]
},
callback : {
onClick :clickNode,
beforeCheck:beforeCheck,
//异步展开,在当前节点展开之后,触发回调函数
onAsyncSuccess: onAsyncSuccess
}
};
$(document).ready(function() {
zTree = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
expandNodes(zTree.getNodes());
});
function onAsyncSuccess(event, treeId, treeNode, msg) {
expandNodes(treeNode.children);
}
//打开所有节点
function expandNodes(nodes) {
if (!nodes)
return;
for ( var i = 0, l = nodes.length; i < l; i++) {
zTree.expandNode(nodes[i], true, false);
expandNodes(nodes[i].children);
}
}
//点击节点name时触发
function clickNode() {
var node = zTree.getSelectedNodes()[0];
if (node) {
if(!node.isParent){
zTree.checkNode(node, true, false);
}
} else {
alert("未找到节点");
}
}
//节点元素type被选中时触发
function beforeCheck(treeId,treeNode) {
//返回 false ,不触发相应的动作
if(treeNode.isParent){
return false;
}
}
//获取当前选中的节点
function getCheckedNode(){
var nodes = zTree.getCheckedNodes(true);
}