简单递归写侧边菜单栏

Posted lily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单递归写侧边菜单栏相关的知识,希望对你有一定的参考价值。

htm:

<div id="main">

</div>

 

data:

{
    "code": 100,
    "content": {
        "rows": [
            { "id": "1", "name": "父节点1", "url": "www", "pid": "0" },
            { "id": "4", "name": "父节点11", "url": "", "pid": "1" },
            { "id": "13", "name": "父节点111", "url": "", "pid": "4" },
            { "id": "14", "name": "父节点112", "url": "", "pid": "4" },
            { "id": "5", "name": "父节点12", "url": "", "pid": "1" },
            { "id": "6", "name": "父节点13", "url": "", "pid": "1" },
            { "id": "2", "name": "父节点4", "url": "", "pid": "0" },
            { "id": "7", "name": "父节点41", "url": "", "pid": "2" },
            { "id": "8", "name": "父节点42", "url": "", "pid": "2" },
            { "id": "9", "name": "父节点43", "url": "", "pid": "2" },
            { "id": "3", "name": "父节点5", "url": "", "pid": "0" },
            { "id": "10", "name": "父节点51", "url": "", "pid": "3" },
            { "id": "11", "name": "父节点52", "url": "", "pid": "3" },
            { "id": "12", "name": "父节点53", "url": "", "pid": "3" }
        ]
    },
    "message": "成功"
} 

js:

 //主方法,运用递归实现
var createTree = function(jsons, pid) {
    if (jsons != null) {
        var ul = \'<ul class="nav">\';
        for (var i = 0; i < jsons.length; i++) {
            if (jsons[i].pid == pid) {
                ul += \'<li class="item">\' + jsons[i].name + "</li>";
                ul += createTree(jsons, jsons[i].id);
            }
        }
        ul += "</ul>";
    }
    return ul;
}

//调用
 $.ajax({
    url: \'data/menu.json\',
    dataType: \'json\',
    type: \'get\',
    async: false,
    success: function(data) {
        if (data.code == 100) {
            var treeData = data.content.rows;
            var ul = createTree(treeData, 0);
            $("#continer").append(ul);
        }

    }
});
$(\'#continer li\').on("click",function(){
    var nextMenu=$(this).next(\'ul\');if(nextMenu.length>0){
       $(nextMenu).show().siblings(\'ul\').hide();
    }
})

以上是关于简单递归写侧边菜单栏的主要内容,如果未能解决你的问题,请参考以下文章

基于element-ui封装侧边栏菜单,可无限展开

基于element-ui封装侧边栏菜单,可无限展开

基于element-ui封装侧边栏菜单,可无限展开

关于侧边导航菜单和片段的一般设计问题

[刘阳Java]_CSS菜单侧边栏制作

Android App 侧边栏菜单的简单实现