【JavaScript】JQuery-Ztree 演示demo
使用CDN引用JQuery和ZTree的资源
demo页的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JQuery-Ztree-Demo</title>
<!-- ZTREE的渲染样式 -->
<link href="https://cdn.bootcss.com/zTree.v3/3.5.40/css/zTreeStyle/zTreeStyle.css" rel="stylesheet">
<!-- 先引用Jquery,再引用Ztree 使用LiveServer,不要静态访问 -->
<!-- https://treejs.cn/v3/main.php#_zTreeInfo -->
<script src="https://cdn.bootcss.com/jquery/1.4.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/zTree.v3/3.5.40/js/jquery.ztree.all.min.js"></script>
</head>
<body>
<div>
<button id="btn1">获取选中节点</button>
<button id="btn2">全选/清空</button>
<!-- class="ztree" 渲染ztree的样式 -->
<div id="ztreeContainer" class="ztree"></div>
</div>
<script>
$(function() {
// ZTree的配置对象 详细文档见 https://treejs.cn/v3/api.php
const SETTING = {
// 1、配置数据格式
data: {
// 接收的数据格式分为两种,树data 和 列表data, enable: true表示按列表data
simpleData: {
enable: true,
// idKey 主键的key名称
idKey: 'areacode',
// pIdKey 父键的key名称
pIdKey: 'areaparent',
// 用于修正根节点父节点数据,即 pIdKey 指定的属性值
rootPId: 0
},
key: {
name: 'areaname' // 每个节点展示的label值的key名称
}
},
// 2、配置视图效果
view: {
// 支持双击展开子节点
dblClickExpand: true,
// 多选支持
selectedMulti: true,
//设置是否显示节点图标 (文件icon)
showIcon: true,
//设置是否显示节点与节点之间的连线
showLine: true,
},
// 3、配置复选的操作
check: {
// 支持复选
enable: true,
// Y: 勾选时的配置 N: 取消勾选时的配置
// p:联动影响父节点 s:联动影响子节点
// chkboxType: { 'Y': 'ps', 'N': 'ps' }
// 设置为只获取选中的节点,不需要勾选父节点和子节点
chkboxType: { 'Y': '', 'N': '' },
// 复选框样式 默认checkbox
// chkStyle: 'checkbox'
},
}
// 回调方法配置对象
const callBackObj = {
// 点击事件
onClick: function(event, treeId, treeNode) {
// 获取当前点击的节点对象
const currentNode = treeNode
console.log('当前选择节点', JSON.stringify(currentNode))
}
}
// 4、配置回调的钩子函数对象
// callBack: callBackObj
SETTING.callBack = callBackObj
// 读取数据,渲染Ztree 需要开启LiveServer,否则跨域限制
$.getJSON("./data.json", function (data){
console.log(data)
// 初始化渲染ZTREE组件
const zTreeObj = $.fn.zTree.init($('#ztreeContainer'), SETTING, data.data)
})
// 获取选中节点
$('#btn1').click(function(event) {
// console.log(event)
// 1、获取ZTree的对象
const ZTREE_OBJECT = $.fn.zTree.getZTreeObj('ztreeContainer')
// 2、调用获取节点API,选择checked为true值的节点
const nodeList = ZTREE_OBJECT.getCheckedNodes(true)
console.log(nodeList)
})
// 全选/清空 操作
var flag = true
$('#btn2').click(function(event) {
// 1、获取ZTree的对象
const ZTREE_OBJECT = $.fn.zTree.getZTreeObj('ztreeContainer')
// 2、调用checkAllNodes
ZTREE_OBJECT.checkAllNodes(flag)
// 3、置反变量
flag = !flag
})
})
// 注,回显数据时,只要checked属性为true即可,也可以自定义属性名称,在data属性中配置
</script>
</body>
</html>
data.json的json数据:
{ "code":200, "data":[ { "areacode":1, "areaid":1, "arealevel":"0", "areaname":"层级1 - A", "areaparent":0, "checked":false, "isenabled":"1" }, { "areacode":2, "areaid":2, "arealevel":"0", "areaname":"层级1 - B", "areaparent":0, "checked":false, "isenabled":"1" }, { "areacode":3, "areaid":3, "arealevel":"0", "areaname":"层级1 - C", "areaparent":0, "checked":false, "isenabled":"1" }, { "areacode":11, "areaid":11, "arealevel":"0", "areaname":"层级2 - A1", "areaparent":1, "checked":false, "isenabled":"1" }, { "areacode":12, "areaid":12, "arealevel":"0", "areaname":"层级2 - A2", "areaparent":1, "checked":false, "isenabled":"1" }, { "areacode":13, "areaid":13, "arealevel":"0", "areaname":"层级2 - A3", "areaparent":1, "checked":false, "isenabled":"1" }, { "areacode":21, "areaid":21, "arealevel":"0", "areaname":"层级2 - B1", "areaparent":2, "checked":false, "isenabled":"1" }, { "areacode":22, "areaid":22, "arealevel":"0", "areaname":"层级2 - B2", "areaparent":2, "checked":false, "isenabled":"2" }, { "areacode":23, "areaid":23, "arealevel":"0", "areaname":"层级2 - B3", "areaparent":2, "checked":false, "isenabled":"1" }, { "areacode":31, "areaid":31, "arealevel":"0", "areaname":"层级2 - C1", "areaparent":3, "checked":false, "isenabled":"1" }, { "areacode":32, "areaid":32, "arealevel":"0", "areaname":"层级2 - C2", "areaparent":3, "checked":false, "isenabled":"2" }, { "areacode":33, "areaid":33, "arealevel":"0", "areaname":"层级2 - C3", "areaparent":3, "checked":false, "isenabled":"1" } ], "message":"操作成功!", "status":"success" }
预览效果:


浙公网安备 33010602011771号