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 相关文章推荐
TBCompressor js代码压缩
Jan 05 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 Javascript
jQuery获取选中内容及设置元素属性的方法
Jul 09 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
JavaScript数组去重的多种方法(四种)
Sep 19 Javascript
微信小程序block的使用教程
Apr 01 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
layui清除radio的选中状态实例
Nov 14 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php 什么是PEAR?
2009/03/19 PHP
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python调用摄像头显示图像的实例
2018/08/03 Python
pygame实现简易飞机大战
2018/09/11 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
python障碍式期权定价公式
2019/07/19 Python
python解析yaml文件过程详解
2019/08/30 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
经典婚礼主持开场白
2014/03/13 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
课外小组活动总结
2014/08/27 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python