如何用layui 渲染一个下拉菜单树
时间: 2024-03-02 16:49:05 浏览: 73
可以使用 layui 的 `tree` 模块来渲染下拉菜单树。下面是一个示例代码:
HTML:
```html
<script type="text/html" id="menuTpl">
<span>{{d.title}}</span>
</script>
<div class="layui-inline">
<div class="layui-input-inline">
<select id="menuSelect" lay-search=""></select>
</div>
</div>
```
JavaScript:
```javascript
layui.use(['layer', 'tree', 'form'], function () {
var layer = layui.layer;
var tree = layui.tree;
var form = layui.form;
// 获取菜单数据并渲染下拉菜单树
$.ajax({
url: '/menu/queryMenuList',
type: 'POST',
dataType: 'json',
success: function (data) {
if (data.code === 0) {
var treeData = data.data;
tree.render({
elem: '#menuSelect',
data: treeData,
showCheckbox: false,
id: 'menuTree',
click: function (obj) {
// 选中节点后的回调函数
console.log(obj.data); // 输出选中的节点数据
},
template: function (item) {
// 自定义节点模板
return layui.tree.tpl('menuTpl', item);
}
});
// 重新渲染下拉菜单
form.render('select');
} else {
layer.msg(data.msg);
}
},
error: function () {
layer.msg('请求失败');
}
});
});
```
在这段代码中,我们首先引入了 `layer`、`tree` 和 `form` 三个模块。然后,我们通过 AJAX 请求获取菜单数据,并使用 `tree.render()` 方法渲染下拉菜单树。其中,`elem`表示渲染的目标元素,`data`表示菜单数据,`showCheckbox`表示是否显示复选框,`id`表示树的 ID,`click`表示选中节点后的回调函数,`template`表示节点的模板函数。最后,我们使用 `form.render()` 方法重新渲染下拉菜单。
阅读全文