layui生成菜单

layui生成菜单


thymeleaf渲染

1

<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
	<li data-name="home"  th:each="menuIndex: ${data}" class="layui-nav-item">
	<a href="javascript:;"  lay-direction="2">
	<cite><span th:text="${menuIndex.name}"></span></cite>
	</a>
	
	<dl class="layui-nav-child" th:each="childNode: ${menuIndex.children}" >
	<dd data-name="console" th:if="${#lists.isEmpty(childNode.children)}" >
	    <a th:lay-href="${childNode.url}" th:text="${childNode.name}"></a>
	</dd>
	
	<dd data-name="form" th:if="${not #lists.isEmpty(childNode.children)}">
	    <a href="javascript:;" th:text="${childNode.name}"></a>
	    <dl class="layui-nav-child" th:each="childNodetwo: ${childNode.children}">
	       <dd><a th:lay-href="${childNodetwo.url}" th:text="${childNodetwo.name}"></a>				  </dd>
	    </dl>
	</dd>
	</dl>
	</li>
</ul>

2

<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
	<li data-name="home"  th:each="menuIndex: ${data}" th:class="${menuIndex.getId()==1}?'layui-nav-item layui-nav-itemed':'layui-nav-item'">
	<a href="javascript:;"  lay-direction="2">
	<i class="layui-icon layui-icon-home"></i>
	<cite><span th:text="${menuIndex.name}"></span></cite>
	</a>
	<dl class="layui-nav-child" th:each="childNode: ${menuIndex.children}" th:switch = "${childNode.children.size()==0 }">
	<dd  th:case="true" data-name="console" th:class="${childNode.getId()==11}?'layui-this'"  >
	<a th:lay-href="${childNode.url}" th:text="${childNode.name}"></a>
	</dd>
	<dd th:case="false" data-name="form">
	<a href="javascript:;" th:text="${childNode.name}"></a>
	<dl class="layui-nav-child" th:each="childNodetwo: ${childNode.children}">
	<dd><a th:lay-href="${childNodetwo.url}" th:text="${childNodetwo.name}"></a></dd>
	</dl>
	</dd>
	</dl>
	</li>
	</ul>

js渲染

<script>
    layui.config({
        base: '[[@{/layuiadmin/}]]' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index', 'user', 'element', 'form'], function () {
        var $ = layui.$
            , setter = layui.setter
            , admin = layui.admin
            , form = layui.form
            , router = layui.router()
            , search = router.search
            , element = layui.element;

        $.ajax({
            url: "/manage/findMenu",
            success: function (succ) {
                console.log(succ);
                for (var i = 0; i < succ.data.length; i++) {
                    if (succ.data[i].url == '#') {
                        var str1 = '<a href="javascript:;" lay-tips=' + '"' + succ.data[i].url + '"' + ' lay-direction="2" >'
                            + '<cite>' + succ.data[i].name + '</cite></a>';
                    }
                    var str2 = '';
                    var str0 = '';
                    var str3 = '';
                    var str8='';
                    var str9='';
                    var arr = succ.data[i].children;
                    for (var j = 0; j < arr.length; j++) {
                        str0 = '<dl class="layui-nav-child">';
                        str3 = '</dl>';
                        str8= '</dd>';

                        var str7 = '';
                        var arr1 = arr[j].children;
                        if(arr1.length>0){
                            str2 = '<dd data-name="form"><a lay-href=' + '"' + arr[j].url + '"' + '>' + arr[j].name + '</a>';
                        }else{
                            str2 = '<dd data-name="console"><a lay-href=' + '"' + arr[j].url + '"' + '>' + arr[j].name + '</a>';
                        }
                        if (arr1.length == 0){
                        }else {
                            for (var j1 = 0; j1 < arr1.length; j1++) {
                                str7 += '<dl class="layui-nav-child">'
                                    + '<dd><a lay-href=' + '"' + arr1[j1].url + '"' + '>' + arr1[j1].name + '</a></dd>'
                                    + '</dl>'
                            }
                        }
                        str9 +=str0+str2+str7+str8+str3;
                    }
                    var str4 = '<li data-name="home" class="layui-nav-item">';
                    var str5 = '</li>';
                    var str6 = str4 + str1 +str9+ str5;
                    $("#layadmin-system-side-menu").append(str6);
                    element.init();
                }
            }
            , error: function () {
                layer.msg("请求失败");
            }
        });
    });
</script>

页面 id要和lay-filter 一样

<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="layadmin-system-side-menu"
           lay-filter="layadmin-system-side-menu">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在layui中创建动态菜单可以通过以下步骤实现: 1. 创建一个空的菜单容器,例如: ```html <div class="layui-side-scroll"> <ul class="layui-nav layui-nav-tree site-demo-nav"></ul> </div> ``` 2. 使用JavaScript动态生成菜单项,并将其添加到菜单容器中,例如: ```javascript // 菜单项数据 var menuData = [ { title: '菜单项1', icon: 'layui-icon layui-icon-home', url: '#' }, { title: '菜单项2', icon: 'layui-icon layui-icon-user', url: '#' }, { title: '菜单项3', icon: 'layui-icon layui-icon-set', url: '#' } ]; // 创建菜单项 var menuHtml = ''; for (var i = 0; i < menuData.length; i++) { var item = menuData[i]; menuHtml += '<li class="layui-nav-item"><a href="' + item.url + '"><i class="' + item.icon + '"></i> ' + item.title + '</a></li>'; } // 将菜单项添加到菜单容器中 $('.site-demo-nav').html(menuHtml); ``` 3. 初始化菜单控件,例如: ```javascript layui.use('element', function(){ var element = layui.element; // 执行渲染 element.init(); }); ``` 这样就可以在页面上创建一个动态的菜单了。 ### 回答2: layui是一款基于流行的前端框架jQuery开发的,用于简化网站开发的工具库。它提供了一系列的组件和功能,其中包括动态创建菜单的能力。 要实现动态创建菜单,我们可以使用layui中的一个核心组件——tree组件。该组件可以用于构建树形结构的菜单,非常方便。 首先,我们需要引入layui库,并初始化tree组件。接下来,我们可以使用tree组件的数据格式进行菜单的配置,可以是json对象,也可以是url地址。我们可以根据具体需求来选择最适合的方式。 然后,我们需要定义一个容器,供菜单生成以及展示。可以是一个div元素,也可以是ul标签。 接下来,我们可以通过tree组件提供的api,动态创建菜单。例如,我们可以使用tree组件的render方法将菜单渲染到指定容器中,或者通过tree组件的add方法、update方法、remove方法等,对已有的菜单进行增删改操作。 最后,我们可以通过绑定菜单的点击事件,来处理菜单的点击响应。这样用户在点击菜单项时,我们可以执行相应的操作。 总的来说,layui提供了一个简洁、易用且功能强大的tree组件,可以方便地实现动态创建菜单。我们只需要合理地调用layui提供的api,定义好数据格式和菜单容器,就可以轻松实现菜单的动态创建和操作。 ### 回答3: Layui是一款基于HTML5的前端框架,简化了前端页面的开发,提供了一系列的组件和工具,其中包括动态创建菜单的功能。 在Layui中动态创建菜单可以通过使用Menu组件来实现。首先,需要在页面中引入Layui的相关文件,包括样式文件和JavaScript文件。然后,在HTML代码中创建一个容器来放置菜单,例如: ```html <div id="menuContainer"></div> ``` 接下来,在JavaScript代码中编写动态创建菜单的逻辑。首先,使用Layui的Menu组件的render方法来渲染菜单,同时指定菜单的容器和配置项,例如: ```javascript layui.use(['element', 'layer', 'jquery', 'menu'], function(){ var element = layui.element; var layer = layui.layer; var $ = layui.jquery; var Menu = layui.menu; var menuData = [ { title: '菜单1', href: '#', children: [ { title: '子菜单1', href: '#' }, { title: '子菜单2', href: '#' } ] }, { title: '菜单2', href: '#' } ]; Menu.render({ elem: '#menuContainer', data: menuData }); }); ``` 在上述代码中,menuData是一个包含菜单数据的数组。每个菜单项可以包含title和href属性,分别表示菜单的名称和链接地址。如果有子菜单,可以使用children属性来指定子菜单的配置。 最后,通过调用Menu组件的render方法渲染菜单,指定菜单容器的选择器和菜单数据即可实现动态创建菜单。运行代码时,菜单将被渲染到指定的容器中。 通过以上步骤,我们可以在Layui中实现动态创建菜单的功能,使得页面的菜单可以根据需要灵活地进行扩展和修改。同时,Layui的Menu组件还提供了丰富的配置选项,可以根据实际需求进行个性化定制,满足不同场景下的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值