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 相关文章推荐
用tip解决Ext列宽度不够的问题
Dec 13 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
Aug 15 Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
jQuery+ajax实现局部刷新的两种方法
Jun 08 jQuery
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
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&amp;&amp;mysql)六
2006/10/09 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
大学生职业生涯规划书模版
2013/12/30 职场文书
门店业绩提升方案
2014/06/08 职场文书
给老婆的保证书
2015/01/16 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
杨善洲电影观后感
2015/06/04 职场文书
干部考核工作总结
2015/08/12 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技