layui自定义ajax左侧三级菜单


Posted in Javascript onJuly 26, 2019

本文实例为大家分享了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();
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
JS之Date对象和获取系统当前时间详解
Jan 13 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
angular仿支付宝密码框输入效果
Mar 25 Javascript
layDate插件设置开始和结束时间
Nov 15 Javascript
微信小程序实现多选删除列表数据功能示例
Jan 15 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 Javascript
js 根据对象数组中的属性进行排序实现代码
Sep 12 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
layui递归实现动态左侧菜单
Jul 26 #Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 #Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 #Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 #Javascript
vue实现滑动切换效果(仅在手机模式下可用)
Jun 29 #Javascript
微信小程序设置滚动条过程详解
Jul 25 #Javascript
vuejs移动端实现div拖拽移动
Jul 25 #Javascript
You might like
PHP 透明水印生成代码
2012/08/27 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
Python sys.argv用法实例
2015/05/28 Python
Python argv用法详解
2016/01/08 Python
Python解析树及树的遍历
2016/02/03 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
军训 自我鉴定
2014/02/03 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
班主任新年寄语
2014/04/04 职场文书
环保倡议书范文
2014/05/12 职场文书
委托书如何写
2014/08/30 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
政审证明范文
2015/06/19 职场文书
八一建军节主持词
2015/07/01 职场文书
董事长开业致辞
2015/07/29 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
导游词之五台山
2019/10/11 职场文书