无限树Jquery插件zTree的常用功能特性总结
其实ztree官网已经有详细的api文档,一切以官网上的说明为准,我在此只是结合实践总结几条常用的ztree的功能特性.
(ztree的语法结构是基于key-value的形式配置)
1:支持异步加载数据
语法配置:
async: { enable: true, url:'abc.ashx', otherparam: { "request": "requestname" } }
简要说明:
enable :设置 ztree 是否开启异步加载模式.
url:ajax 获取数据的 url 地址.
otherparam:ajax 请求提交的静态参数键值对.相当于ajax中的data参数.
2:加载数据并绑定,一般都是定义数据结构实体即model,此数据结构要包含层级关系通常包括:id,父id,name.
然后配置语法:
data: { simpledata: { enable: true } }
或者
data: { key: { children: "childrens", checked: "ischecked" } }
简要说明:
simpledata:即可采用数组作为数据源绑定.此时异步加载的数据可为平行结构.
children: 指定节点数据中保存子节点数据的属性名称,此时异步加载的数据为树的折叠结构;所以后端加载数据时要使用递归算法.
3:支持单选,复选功能
语法配置:
check: { enable: true, chkstyle: "checkbox", radiotype: "all" chkboxtype:{ "y": "", "n": "" } }, data: { key: { checked: "ischecked" } }
简要说明:
enable:设置 ztree 的节点上是否显示 checkbox / radio
chkstyle:勾选框类型(checkbox 或 radio)
radiotype:radio 的分组范围
chkboxtype:勾选 checkbox 对于父子节点的关联关系
checked:为加载数据后复选框是否勾选.ischecked为后端数据结构model中定义的字段.
4:支持添加子节点,编辑节点,删除节点事件
我这里介绍如何采用自定义添加,编辑,删除按钮的方式
语法配置:
view: { addhoverdom: addhoverdom, removehoverdom: removehoverdom }
其中addhoverdom 函数为:
function addhoverdom(treeid, treenode) { var sobj = $("#" + treenode.tid + "_span"); if ($("#addbtn_" + treenode.id).length > 0) return; var str= "<a id='addbtn_" + treenode.id + "' onclick='自定义函数1(" + treenode.departmentid + ")'>添加子节点</a>"; str+= "<a id='addbtn1_" + treenode.id + "' onclick='自定义函数2(" + treenode.departmentid + ")'>编辑节点</a>"; str+= "<a id='addbtn2_" + treenode.id + "' onclick='自定义函数3(" + treenode.departmentid + ")'>删除节点</a>"; sobj.after(str); };
其中removehoverdom函数为:
function removehoverdom(treeid, treenode) { $("#addbtn_" + treenode.id).unbind().remove(); $("#addbtn1_" + treenode.id).unbind().remove(); $("#addbtn2_" + treenode.id).unbind().remove(); };
简要说明:
addhoverdom:用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 ztree 内部的编辑、删除按钮
removehoverdom:用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 ztree 内部的编辑、删除按钮