layui ajax实现菜单管理功能,无限菜单--基于jquery+layui的异步无限菜单导航及后台界面...

一个偷懒程序猿的自白

偷懒是人的本性,自然的想要的东西都依赖百度,无奈找了老半天都没能找到心怡的无限菜单,索性自己动手写写。并不是专业的前端人员,代码有瑕疵还望多多包涵,欢迎指正。

话不多说,直奔主题。

一、先看效果

7c903d35c0d7

无限菜单导航.png

二、HTML代码实现

layui

// 导航菜单的间隔像素

var menuCell = 5;

layui.use('element', function(){

var element = layui.element;

var $ = layui.jquery;

data= '[{"name":"主页","url":"www.sys.com","childMenus":null},{"name":"系统设置","url":"www.sys.com","childMenus":[{"name":"权限模块","url":"www.sys.com","childMenus":null}]},{"name":"业务系统","url":"www.manager.com","childMenus":[{"name":"销售系统","url":"www.child01.com","childMenus":[{"name":"订单系统","url":"www.order.com","childMenus":[{"name":"未完成订单","url":"www.undo.com","childMenus":[{"name":"服装部订单","url":"www.clothes.com","childMenus":[{"name":"成人部分","url":"www.clothes.com","childMenus":null},{"name":"儿童部分","url":"www.clothes.com","childMenus":null}]},{"name":"玩具部订单","url":"www.clothes.com","childMenus":[{"name":"成人部分","url":"www.clothes.com","childMenus":null},{"name":"儿童部分","url":"www.clothes.com","childMenus":null}]}]}]},{"name":"结算系统","url":"www.order.com","childMenus":null}]},{"name":"公关系统","url":"www.child02.com","childMenus":null}]}]';

console.log("data: "+data);

data = JSON.parse(data);

var liStr= "";

// 遍历生成主菜单

for( var i = 0; i

//console.log("--> "+JSON.stringify(data[i]));

// 判断是否存在子菜单

if(data[i].childMenus!=null&&data[i].childMenus.length>0){

console.log("--> "+JSON.stringify(data[i].childMenus));

liStr+="

"+data[i].name+"\n"+

"

// 遍历获取子菜单

for( var k = 0; k

liStr+=getChildMenu(data[i].childMenus[k],0);

}

liStr+="

";

}else{

liStr+="

"+data[i].name+"";

}

};

console.log(">>>> "+liStr);

$("#navBarId").html("

  • \n" +liStr+"
");

element.init();

});

// 递归生成子菜单

function getChildMenu(subMenu,num) {

console.log("num: "+num);

num++;

var subStr = "";

if(subMenu.childMenus!=null&&subMenu.childMenus.length>0){

subStr+="

  • "+subMenu.name+"" +

    "

    for( var j = 0; j

    subStr+=getChildMenu(subMenu.childMenus[j],num);

    }

    subStr+="

";

}else{

subStr+="

"+subMenu.name+"";

}

return subStr;

}

layui.use('table', function(){

var table = layui.table;

table.render({

elem: '#test'

,url:'common/userList'

,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增

,cols: [[

{field:'id', width:80, title: 'id', sort: true}

,{field:'lngCm', width:80, title: 'lngCm'}

,{field:'username', width:80, title: 'username', sort: true}

]]

,request:{

pageName: 'curr' //页码的参数名称,默认:page

,limitName: 'nums' //每页数据量的参数名,默认:limit

}

//用于对返回的数据格式的自定义,如:

,response: {

statusName: 'succ' //数据状态的字段名称,默认:code

,statusCode: 0 //成功的状态码,默认:0

,msgName: 'msg' //状态信息的字段名称,默认:msg

,countName: 'totalSize' //数据总数的字段名称,默认:count

,dataName: 'list' //数据列表的字段名称,默认:data

}

});

});

三、后台json串

[

{

"name": "系统设置",

"url": "www.sys.com",

"childMenus": [

{

"name": "权限模块",

"url": "www.sys.com",

"childMenus": null

}

]

},

{

"name": "业务系统",

"url": "www.manager.com",

"childMenus": [

{

"name": "销售系统",

"url": "www.child01.com",

"childMenus": [

{

"name": "订单系统",

"url": "www.order.com",

"childMenus": [

{

"name": "未完成订单",

"url": "www.undo.com",

"childMenus": [

{

"name": "服装部订单",

"url": "www.clothes.com",

"childMenus": [

{

"name": "成人部分",

"url": "www.clothes.com",

"childMenus": null

},

{

"name": "儿童部分",

"url": "www.clothes.com",

"childMenus": null

}

]

},

{

"name": "玩具部订单",

"url": "www.clothes.com",

"childMenus": [

{

"name": "成人部分",

"url": "www.clothes.com",

"childMenus": null

},

{

"name": "儿童部分",

"url": "www.clothes.com",

"childMenus": null

}

]

}

]

}

]

},

{

"name": "结算系统",

"url": "www.order.com",

"childMenus": null

}

]

},

{

"name": "公关系统",

"url": "www.child02.com",

"childMenus": null

}

]

}

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值