Head部分javascript
引入css樣式表:css
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/layui/css/layui.css">
引入js庫:java
<script src="${pageContext.request.contextPath}/static/layui/layui.js"></script>
Html部分jquery
<div class="layui-side"> <div class="layui-side-scroll" id="navbar_side" lay-filter="side"></div> </div>
Js部分:數據模擬和數據請求git
<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);ajax
navbar.on('click(side)', function(data) { //data參數說明 //包含兩個屬性:data.elem 和 data.field //data.elem 是點擊的a標籤dom對象 //data.field 包含三個屬性 //一、data.field.href 設置的鏈接地址 //二、data.field.icon 設置的圖標 //三、data.field.title 設置的標題 console.log(data.elem); console.log(data.field.title); console.log(data.field.icon); console.log(data.field.href); });
報錯處理:json
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/ dom
下載地址: http://git.oschina.net/besteasyteam/beginner_admin jsp
by Layui_初學者
(layui學習之導航)