layui添加动态菜单与选项卡


Posted in Javascript onJuly 26, 2019

本文实例为大家分享了layui添加动态菜单与选项卡的具体代码,供大家参考,具体内容如下

HTML

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 <title>Layui</title>
 <link rel="stylesheet" href="js/css/layui.css" media="all">
 </head>
 <body>
 <div class="layui-side layui-bg-black">
 <div class="layui-side-scroll">
 <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
 <ul class="layui-nav layui-nav-tree" lay-filter="test" id="memus"></ul>
 </div>
 </div>
 <div class="layui-body">
 <!-- 动态选项卡 -->
 <div id="tabzu" class="layui-tab layui-tab-card layui-tab-brief" lay-filter="tabDemo" lay-allowclose="true">
 <ul class="layui-tab-title"></ul>
 <div class="layui-tab-content"></div>
 </div>
 </div>
 <script src="js/layui.all.js" charset="utf-8"></script>
 <script type="text/javascript" src="js/index.js" ></script>
 </body>
 
</html>

index.js

layui.use('element', function() {
 function checkLastItem(arr, i) {
 return arr.length == (i + 1);
 }
 
 function getAhtml(obj){
 return "<a href=\"javascript:;\" οnclick=\"addTab('" + obj.name + "','" + obj.url + "')\" >" + obj.name + "</a>";
 }
 //动态菜单
 layui.jquery.ajax({
 url: "http://127.0.0.1:18000/sys/menus",
 method: 'POST',
 success: function(res) {
 var html = "";
 for(var i = 0; i < res.length; i++) {
 var strli = "<li class=\"layui-nav-item lay-unselect \" >";
 if (res[i].url =='#'){
 strli = strli + "<a href=\"javascript:;\">" + res[i].name + "</a>";
 console.log(res[i].name)
 }else{
 strli = strli + getAhtml(res[i]);
 }
 if(res[i].pId == "0" && !checkLastItem(res, i) && res[i + 1].pId != "0") {
 strli = strli + "<dl class=\"layui-nav-child\" >";
 for(; !checkLastItem(res, i) && res[i + 1].pId != "0"; i++) {
 strli = strli + "<dd>"+getAhtml(res[i+1])+"</dd>";
 }
 strli = strli + "</dl>";
 }
 strli = strli + "</li>";
 html = html + strli;
 }
 layui.jquery("#memus").html(html);
 layui.element.init(); //一定初始化一次
 }
 })
});
 
//添加选项卡
function addTab(name, url) {
 if(layui.jquery(".layui-tab-title li[lay-id='" + name + "']").length > 0) {
 //选项卡已经存在
 layui.element.tabChange('tabDemo', name);
 layer.msg('切换-' + name)
 } else {
 //动态控制iframe高度
 var tabheight = layui.jquery(window).height() - 95;
 contentTxt = '<iframe src="' + url + '" scrolling="no" width="100%" height="' + (tabheight) + 'PX"></iframe>';
 //新增一个Tab项
 layui.element.tabAdd('tabDemo', {
 title: name,
 content: contentTxt,
 id: name
 })
 //切换刷新
 layui.element.tabChange('tabDemo', name)
 layer.msg('新增-' + name)
 }
}

菜单JSON

[
 {
 "name": "首页",
 "url": "shouye.html",
 "id": "1",
 "pId": "0"
 },
 {
 "name": "数据库",
 "url": "#",
 "id": "1",
 "pId": "0"
 },
 {
 "name": "MYSQL",
 "url": "mysql.html",
 "id": "2",
 "pId": "1"
 },
 {
 "name": "ORACLE",
 "url": "oracle.html",
 "id": "3",
 "pId": "1"
 },
 {
 "name": "开发语言",
 "url": "#",
 "id": "4",
 "pId": "0"
 },
 {
 "name": "JAVA",
 "url": "java.html",
 "id": "5",
 "pId": "4"
 },
 {
 "name": "Python",
 "url": "python.html",
 "id": "6",
 "pId": "4"
 }
]

效果截图:

layui添加动态菜单与选项卡

如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总

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

Javascript 相关文章推荐
Javascript 表单之间的数据传递代码
Dec 04 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 Javascript
推荐20家国外的脚本下载网站
Apr 28 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
js兼容火狐显示上传图片预览效果的方法
May 21 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
May 24 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
javascript的var与let,const之间的区别详解
Feb 18 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 #Javascript
javascript中的闭包概念与用法实践分析
Jul 26 #Javascript
layui自定义插件citySelect实现省市区三级联动选择
Jul 26 #Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 #Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 #jQuery
微信小程序—setTimeOut定时器的问题及解决
Jul 26 #Javascript
layUI实现三级导航菜单效果
Jul 26 #Javascript
You might like
PHP的Yii框架的基本使用示例
2015/08/21 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
文案策划专业自荐信
2014/07/07 职场文书
医学专业大学生求职信
2014/07/12 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
介绍信的格式
2015/01/30 职场文书
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript