layui自定义ajax左侧三级菜单

HTML代码: 需引入layui.css代码
<!-- 左侧的菜单 -->
<div class="layui-side layui-bg-black" id="admin-side">
	<div class="layui-side-scroll" id="admin-navbar-side" lay-filter="side">
						
						
	</div>
</div>
<!-- 右侧tab选项卡和内容 -->                                                                      
<div class="layui-body" style="bottom: 0;border-left: solid 2px #1AA094;" id="admin-body">
	<div class="layui-tab admin-nav-card layui-tab-brief" lay-filter="admin-tab" lay-allowclose="true">
		<ul class="layui-tab-title">  <!-- tab选项卡标题 -->
			<li class="layui-this">
				<i class="fa fa-dashboard" aria-hidden="true"></i>
				<cite>控制面板</cite>
			</li>
		</ul>
		<div class="layui-tab-content" style="min-height: 150px; padding: 5px 0 0 0;">  <!-- tab选项卡内容 -->
			<div class="layui-tab-item layui-show">
				<iframe src="main.html"></iframe>
			</div>
		</div>
	</div>
</div>
js代码:需引入 layui.all.js
var $ = layui.jquery,
	element = layui.element(),
	form = layui.form();
var html = '';
//获取菜单
$.ajax({
	url:"../manage/permissionList?type=1",
	type:"post",
	dataType:"json",
	data:{},
	success:function(data){
		var navs=data.result;
		$.each(navs,function(i,item){
			html += '<dl>';
			html += '<dt><a href="javascript:;" data-url="'+item.url+'" nav-id="'+item.id+'"><i class="'+item.icon+'"></i><cite>'+item.title+'</cite></a></dt>';
			//如果有第二级菜单
			if(item.children !== undefined && item.children.length > 0){
				$.each(item.children,function(j,item2){
					html += '<dd>';
					html += '<a href="javascript:;" data-url="'+item2.url+'" nav-id="'+item2.id+'"><i class="'+item2.icon+'"></i><cite>'+item2.title+'</cite></a>';
					//如果有三级菜单
					if(item2.children !== undefined && item2.children.length > 0){
						html += '<ul>';
						$.each(item2.children,function(k,item3){
							html += '<li>'+
										'<a href="javascript:;" data-url="'+item3.url+'" nav-id="'+item3.id+'">'+
											'<i class="'+item3.icon+'"></i>'+
											'<cite>'+item3.title+'</cite>'+
										'</a>'+
									'</li>';
						});
						html += '</ul>';
					}
					html += '</dd>';
				});
			}
			html += '</dl>';
		});
		//渲染html
		$('#admin-navbar-side').html(html);	
	}
});

//触发事件
var active = {
    tabAdd: function(obj){
      //新增一个Tab项
      element.tabAdd('admin-tab', {
        title: $(this).html()//用于演示
        ,content: '<iframe src="'+$(this).attr('data-url')+'"></iframe>'
      });
      element.tabChange("admin-tab", $('.layui-tab-title li').length - 1);  
    },
    tabDelete: function(index) {  
        //删除指定Tab项  
        element.tabDelete('admin-tab', index); //删除(注意序号是从0开始计算)  
    }
    ,tabChange: function(lay_id){
      //切换到指定Tab项
      element.tabChange('admin-tab', lay_id); //切换到:用户管理
    }
};
//添加tab
$(document).on('click','a',function(){
	if(!$(this)[0].hasAttribute('data-url') || $(this).attr('data-url')==='')return;
	var title = $.trim($(this).text());  
    var tabs = $(".layui-tab-title").children();  
    for(var i = 0; i < tabs.length; i++) {
        if($(tabs).eq(i).children('cite').text() == title) {
            element.tabChange('admin-tab', i);  
            return;
        }  
    }
    active["tabAdd"].call(this);
    resize();
    active.tabChange($(".layui-tab-title").children().length - 1);
});

//iframe自适应
function resize(){
	var $content = $('.admin-nav-card .layui-tab-content');
	$content.height($(this).height() - 147);
	$content.find('iframe').each(function() {
		$(this).height($content.height());
	});
}
$(window).on('resize', function() {
	var $content = $('.admin-nav-card .layui-tab-content');
	$content.height($(this).height() - 147);
	$content.find('iframe').each(function() {
		$(this).height($content.height());
	});
}).resize();


//toggle左侧菜单
$('.admin-side-toggle').on('click', function() {
	var sideWidth = $('#admin-side').width();
	if(sideWidth === 200) {
		$('#admin-body').animate({
			left: '0'
		}); //admin-footer
		$('#admin-footer').animate({
			left: '0'
		});
		$('#admin-side').animate({
			width: '0'
		});
	} else {
		$('#admin-body').animate({
			left: '200px'
		});
		$('#admin-footer').animate({
			left: '200px'
		});
		$('#admin-side').animate({
			width: '200px'
		});
	}
});
$(document).on('click','dt',function(){
	$(this).parent().find('dd').toggle();
});
$(document).on('click','dd a',function(){
	$(this).next('ul').toggle();
});


  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值