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 相关文章推荐
jQuery替换字符串(实例代码)
Nov 13 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
28个常用JavaScript方法集锦
Jan 14 Javascript
Javascript中setTimeOut和setInterval的定时器用法
Jun 12 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
ionic3 懒加载
Aug 16 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 Javascript
使用layui定义一个模块并使用的例子
Sep 14 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
PHP静态文件生成类实例
2014/11/29 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP学习记录之数组函数
2018/06/01 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
javascript add event remove event
2008/04/07 Javascript
js function使用心得
2010/05/10 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
Django的session中对于用户验证的支持
2015/07/23 Python
快速入门python学习笔记
2017/12/06 Python
详解python里的命名规范
2018/07/16 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
毕业生幼师求职自荐信
2013/10/01 职场文书
学年末自我鉴定
2014/01/21 职场文书
校园安全演讲稿
2014/05/09 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
Python实现Hash算法
2022/03/18 Python