指点成金-最美分享吧

登录

[Layui]layui使用tree实现树形下拉菜单

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了[Layui]layui使用tree实现树形下拉菜单相关的知识,希望对你有一定的参考价值。

一. 效果演示 基于V2.6.8

二. 插入css样式、引用js插件

  <link rel="stylesheet" href="~/layui/css/layui.css" media="all">    @*<link rel="stylesheet" type="text/css" href="~/layui/font/">*@    <style type="text/css">        .treeSelect .layui-select-title span             line-height: 38px;                .layui-form-select dl             padding: 0;            </style>

三. 添加html代码

<form class="layui-form layui-form-pane" style="margin: 50px;">        <p class="layui-form-item">            <label class="layui-form-label">菜单栏目</label>            <p class="layui-input-block" style="width: 300px;">                <p class="layui-unselect layui-form-select treeSelect">                    <p class="layui-select-title">                        <span class="layui-input layui-unselect" id="treeclass">选择栏目</span>                        <input type="hidden" name="selectID" value="12">                        <i class="layui-edge"></i>                    </p>                    @*<p id="meuntree" class="demo-tree-more"></p>*@                    <dl class="layui-anim layui-anim-upbit">                        <dd>                            <ul id="meuntree"></ul>                        </dd>                    </dl>                </p>            </p>        </p>    </form>

四. JS代码

<script src="~/layui/layui.js"></script><script type="text/javascript">    layui.config(        base: '~/layui/' //静态资源所在路径    );    layui.use(['layer', 'tree', 'form'], function ()         var $ = layui.jquery,            layer = layui.layer,            form = layui.form,            tree = layui.tree;        //初始化权限        function init_auth()             console.log("权限菜单初始化");            var data = [];            $.ajax(                url: "http://localhost:8089/api/SysMenu/GetSysMenuList",    //后台数据请求地址                type: "get",                async: false,                success: function (resut)                     data = resut;                    var formatdata = [];                    for (var i in data)      // pId为0时表示为根节点                        if (data[i].pid == '-1')                             var tempObject = ;                            tempObject.title = data[i].name;                            tempObject.id = data[i].id;                            tempObject.children = getChildren(tempObject.id);                            formatdata.push(tempObject);                                                                function getChildren(id)     //递归体  即对每条data逐条递归找children                        var tempArray = [];                        for (var i in data)                             if (data[i].pid == id)                                 var tempChild = ;                                tempChild.title = data[i].name;                                tempChild.id = data[i].id;                                if (selectChildren(data[i].id))    //若存在子节点,继续递归;否则为叶节点,停止递归                                    tempChild.children = getChildren(data[i].id);                                                                tempArray.push(tempChild);                                                                            return tempArray;                                        function selectChildren(id)    // 是否存在子节点                        for (var i in data)                             if (data[i].pid == id)                                 return true;                                                                            return false;                                        //转成符合要求的格式                    console.log(formatdata);                    //基本演示                    tree.render(                        elem: '#meuntree'                        , data: formatdata                                                , id: 'authlist'                        , isJump: true //是否允许点击节点时弹出新窗口跳转                        , click: function (obj)                             var data = obj.data;  //获取当前点击的节点数据                            //layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));                            var $select = $($(this)[0].elem).parents(".layui-form-select");                            $select.removeClass("layui-form-selected").find(".layui-select-title span").html(obj.data.title).end().find("input:hidden[name='selectID']").val(obj.data.id);                            var selectId = $("input[name='selectID']").val();                            layer.msg("选择了id=" + selectId + "的数据" + '<br>节点数据:' + obj.data.title,                                 icon: 1,                                time: 5000,                                offset: '15px'                            );                                            );                            );            //return data;        ;            init_auth();        // 默认选中        var checkNode =             id: 4            ,title: '用户管理'                var $select = $(".layui-form-select");        $select.removeClass("layui-form-selected").find(".layui-select-title span").html(checkNode.title).end().find("input:hidden[name='selectID']").val(checkNode.id);        form.render();        $(".treeSelect").on("click", ".layui-select-title", function (e)             $(".layui-form-select").not($(this).parents(".layui-form-select")).removeClass("layui-form-selected");            $(this).parents(".treeSelect").toggleClass("layui-form-selected");            layui.stope(e);        ).on("click", "dl i", function (e)             layui.stope(e);        );        $(document).on("click", function (e)             $(".layui-form-select").removeClass("layui-form-selected");        );    );</script>

以上是关于[Layui]layui使用tree实现树形下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章