layui添加动态菜单与选项卡 AJAX请求的例子


Posted in Javascript onSeptember 25, 2019

如下所示:

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" rel="external nofollow" 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添加动态菜单与选项卡 AJAX请求的例子

以上这篇layui添加动态菜单与选项卡 AJAX请求的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中的substring和substr函数的区别说明
May 07 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
php和js对数据库图片进行等比缩放示例
Apr 28 Javascript
js使用removeChild方法动态删除div元素
Aug 01 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
微信小程序 教程之wxapp视图容器 swiper
Oct 19 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
node实现的爬虫功能示例
May 04 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 Javascript
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
Sep 25 #Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 #Javascript
vue+axios实现post文件下载
Sep 25 #Javascript
vue + axios get下载文件功能
Sep 25 #Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 #Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 #jQuery
axios实现文件上传并获取进度
Mar 25 #Javascript
You might like
php显示指定目录下子目录的方法
2015/03/20 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
javascript新手语法小结
2008/06/15 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
Django中的Signal代码详解
2018/02/05 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python如何实现代码检查
2019/06/28 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
应聘面试自我评价
2014/01/24 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
企业年检委托书范本
2014/10/14 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
Python列表的索引与切片
2022/04/07 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL