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