Head部分
引入css样式表:
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/layui/css/layui.css">
引入js库:
<script src="${pageContext.request.contextPath}/static/layui/layui.js"></script>
Html部分
<div class="layui-side"> <div class="layui-side-scroll" id="navbar_side" lay-filter="side"></div> </div>
Js部分:数据模拟和数据请求
<script> //左侧竖导航:模拟数据 layui.config({ base: 'static/js/', //需要依赖的navbar.js/tab.js路径 }).use(['element', 'layer', 'navbar', 'tab'], function () { var element = layui.element, $ = layui.jquery, layer = layui.layer, navbar = layui.navbar(); //模拟数据navs navs = [ { "title": "首页", "icon": "fa fa-home", //左侧图标 "spread": false, //是否默认展开 "href": "${pageContext.request.contextPath}/static/modules/main/index.jsp" //点击之后,右侧iframe显示的页面路径 }, { "title": "营业厅", "icon": "fa fa-desktop ", "spread": false, "href": " ", "children": [ //二级菜单 children { "title": "指标", "icon": "fa fa-flag-checkered", "href": "${pageContext.request.contextPath}/static/modules/main/setting/userList.jsp", "spread": false }, { "title": "效益", "icon": "fa fa-line-chart", "href": "${pageContext.request.contextPath}/static/modules/main/setting/userList.jsp", "spread": false } ] }, { "title": "系统设置", "icon": "fa fa-cogs", "href": "", "spread":false, "children": [ { "title": "权限设置", "icon": "fa fa-balance-scale", "href": "" } ] }, { "title": "明细导入", "icon": "fa fa-file-text", "spread": false, "href": "${pageContext.request.contextPath }/static/modules/DataImport/importExcel.jsp" }]; //设置navbar navbar.set({ type:'GET', //获取方式 spreadOne: true, //设置是否只展开一个二级菜单 elem: "#navbar_side", //存在组件的容器 cached: false, //是否启用缓存,如果设置为true,则将初始化数据的数据添加至缓存 data: navs, //提供给组件的数据列表,请严格按照规定格式提供。 /*cached:true, url: 'datas/nav.json' //提供数据源远程的URL,当前只支持同步的方式读取数据 */ }); //渲染navbar navbar.render(); //监听点击事件 navbar.on('click(side)', function (data) { var childHtml = data.field.href;//获取当前点击的路径 $(".layui-body iframe").attr("src",childHtml);//将路径赋值给iframe展示 }); }); </script> <script> //左侧竖导航:请求数据 layui.config({ base: 'static/js/', //需要依赖的navbar.js/tab.js路径 }).use(['element', 'layer', 'navbar', 'tab'], function () { var element = layui.element, $ = layui.jquery, layer = layui.layer, navbar = layui.navbar(); $.ajax({ type:'get', url:"${pageContext.request.contextPath }/mainIndexData", success:function(data){ //console.log(data); var navData = data.functionList; $("#admin_userName").text(data.fullname); //用户名称 //设置navbar navbar.set({ spreadOne: true, elem: "#navbar_side", cached: false, data: navData }); //渲染navbar navbar.render(); //监听点击事件 navbar.on('click(side)', function (data) { var childHtml = data.field.href;//获取当前点击项的路径 $(".layui-body iframe").attr("src",childHtml);//将路径赋值给右侧iframe }); } }); }); </script>
navbar.on('event(过滤器值)', callback);
navbar.on('click(side)', function(data) { //data参数说明 //包含两个属性:data.elem 和 data.field //data.elem 是点击的a标签dom对象 //data.field 包含三个属性 //1、data.field.href 设置的连接地址 //2、data.field.icon 设置的图标 //3、data.field.title 设置的标题 console.log(data.elem); console.log(data.field.title); console.log(data.field.icon); console.log(data.field.href); });
报错处理:
layui.element is not a function 将 element = layui.element() ==> 改为element = layui.element layui版本为2.0以上 layui2.0版本修改了很多地方:如 var form = layui.form; var element = layui.element; laypage.render(options)
PS:数据格式需要严格按照规定提供
演示地址: http://m.zhengjinfan.cn/
下载地址: http://git.oschina.net/besteasyteam/beginner_admin
by Layui_初学者
(layui学习之导航)