layui.tree({
elem: '#demo'
,nodes: [{ //节点数据
name: '节点A'
,children: [{
name: '节点A1'
}]
}, {
name: '节点B'
,children: [{
name: '节点B1'
,alias: 'bb' //可选
,id: '123' //可选
}, {
name: '节点B2'
}]
}]
,click: function(node){
console.log(node) //node即为当前点击的节点数据
}
});
点击节点得到的node值
{"name": "节点B1","alias": "bb","id": "123"}如果我的树是无限的。我想动态加载怎么办。
https://blog.csdn.net/qq_45510899/article/details/107010411
https://blog.csdn.net/m0_74018330/article/details/131672618
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui Tree 动态加载示例</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui-v2.5.7/dist/css/layui.css" media="all">
</head>
<body>
<div id="tree"></div>
<script src="https://cdn.jsdelivr.net/npm/layui-v2.5.7/dist/layui.all.js"></script>
<script>
layui.use('tree', function(){
var tree = layui.tree;
// 初始化树形结构
tree.render({
elem: '#tree', // 绑定元素
showCheckbox: true, // 是否显示复选框
onlyIconControl: true, // 仅通过图标控制
data: [], // 初始数据
click: function(node){ // 点击节点时触发
if(node.children && node.children.length === 0) { // 如果没有子节点,则进行异步加载
loadData(node);
}
}
});
// 异步加载数据函数
function loadData(node) {
// 这里使用 jQuery 的 $.ajax 或其他 AJAX 方法来获取数据
$.ajax({
url: '/api/get-children', // 假设这是你的 API 接口,用来获取子节点数据
type: 'GET',
data: { id: node.id }, // 假设你需要传递父节点的 ID 来获取子节点
success: function(res) {
// 假设返回的数据格式是 { status: 'ok', data: [...] }
if(res.status === 'ok') {
tree.setChecked(node.elem, true); // 可选,设置节点为选中状态
tree.reloadChildData(node, res.data); // 重新加载子节点数据
} else {
console.error('Failed to load data');
}
},
error: function() {
console.error('Error occurred while loading data');
}
});
}
});
</script>
</body>
</html>// 假设你从服务器获取了新的数据 newData
var newData = [...]; // 新的数据结构,与上面格式相同
// 使用reload方法更新树形结构数据
tree.reload('demoId', {data: newData}); // 'demoId' 是你在初始化时设置的唯一标识符
// 假设我们要在节点1下添加一个子节点
var childNode = {title: '新子节点', id: 6};
var treeInstance = tree.getTreeInstance('demoId'); // 获取树实例对象
treeInstance.appendNodes(1, [childNode]); // 在id为1的节点下添加新节点,这里的1是节点的id值
tree.render({
elem: '#treeDemo',
data: [], // 初始为空数组或部分静态数据
showCheckbox: true,
id: 'demoId',
click: function(node){ // 点击事件处理函数
if(node.children && node.children.length === 0) { // 如果当前节点没有子节点,则进行异步加载
$.ajax({
url: '/api/get-children', // 假设的API接口,用于获取子节点数据
data: {parentId: node.id}, // 将父节点的id作为参数传递,以便服务器知道需要返回哪个节点的子节点数据
success: function(res) {
treeInstance.appendNodes(node.id, res.data); // 使用返回的数据更新节点下的子节点
}
});
}
}
});站长微信:xiaomao0055
站长QQ:14496453