layui动态生成导航栏

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_初学者 

下载文件tab.js  navbar.js

 

(layui学习之导航)

相关文章
相关标签/搜索