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 相关文章推荐
LBS blog sql注射漏洞[All version]-官方已有补丁
Aug 26 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
setTimeout的延时为0时多个浏览器的区别
May 23 Javascript
利用毫秒减值计算时长的js代码
Sep 22 Javascript
Javascript之this关键字深入解析
Nov 12 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
Sep 03 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
Vue.js学习教程之列表渲染详解
May 17 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 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/09/15 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
vue自定义树状结构图的实现方法
2020/10/18 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python打印“菱形”星号代码方法
2018/02/05 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
对numpy中轴与维度的理解
2018/04/18 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
Python实现随机爬山算法
2021/01/29 Python
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
开天辟地观后感
2015/06/09 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python