亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

layui遞歸實現動態左側菜單

2019-11-19 11:07:46
字體:
來源:轉載
供稿:網友

本文實例為大家分享了layui遞歸實現動態左側菜單的具體代碼,供大家參考,具體內容如下

我知道兩種方式實現:

一、先加載所有的主菜單,之后通過點擊主菜單在加載該菜單的子菜單(缺點,如果判斷是否已經加載過,那么動態添加了菜單,這里顯示不出來,不判斷的話,每次點擊都會請求一次,這樣請求的次數就太多了,服務器不太好的話可能會成為高并發的一個原因)

二、就是以下的了,使用遞歸一次性全部加載出來(缺點,耗費服務器內存)

如果動態添加一個菜單,你當前頁面不手動刷新菜單不會顯示,這個問題可以考慮用websocket實現

首先是service層如何獲取所有的菜單(主菜單和所有的子菜單)

 /** *獲取所有菜單 **/ @Override public List<MeunInfo> getParentMeun() { //獲取所有的菜單(包括子菜單和父級菜單) List<MeunInfo> list = meunDao.getParentMeun(); //創建一個集合用于保存所有的主菜單 List<MeunInfo> rootMeun=new ArrayList<>(); //遍歷所有菜單集合,如果是主菜單的話直接放入rootMeun集合 for (MeunInfo info:list){ //判斷為0是因為我的主菜單標識是0 if (info.getMeunParent()==0){ rootMeun.add(info); } }   //這個是遍歷所有主菜單,分別獲取所有主菜單的所有子菜單 for (MeunInfo info:rootMeun){ //獲取所有子菜單 遞歸 List<MeunInfo> childrenList=getchildrenMeun(info.getId(),list); //這個是實體類中的子菜單集合 info.setChildrenList(childrenList); } return rootMeun; } /*** 遞歸獲取子菜單(這個我也不太理解,copy過去就行)**/public List<MeunInfo> getchildrenMeun(int id,List<MeunInfo> allMeun){ //用于保存子菜單 List<MeunInfo> childrenList=new ArrayList<>(); for (MeunInfo info: allMeun){ //判斷當前的菜單標識是否等于主菜單的id if(info.getMeunParent()==id){ //如果是的話 就放入主菜單對象的子菜單集合 childrenList.add(info); } }  //這里就是遞歸了,遍歷所有的子菜單 for (MeunInfo info:childrenList){ info.setChildrenList(getchildrenMeun(info.getId(),allMeun)); }  //如果子菜單為空的話,那就說明某菜單下沒有子菜單了,直接返回空,子菜單為空的話就不會繼續  //迭代了 if(childrenList!=null && childrenList.size()==0){ return null; } return childrenList; }

接下來是實體類

 //菜單id private int id; //菜單標題 private String meunTitle; //菜單地址 private String meunUrl; //菜單狀態 private int meunStatus; //菜單標識 private int meunParent; //菜單排序 private int meunSort; //子菜單集合 private List<MeunInfo> childrenList;  //get set 省略

之后你可以測試,可以拿到結果,這個自行測試

界面代碼(注意這里我是用的是layui)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/layui.css" > <style type="text/css"> #index-container,html,body{ margin:0px; padding:0px; } #index-container{ width:100%; height:auto;  }  #index-navigationbar{ width:100%; height:60px; }  #index-navigationbar ul{ padding-left:77%; }  #index-commonmenu{ width: 15%; height:519px; float: left; } #indixe-tab{ width:84.9%; height: 150px; float: right; } </style></head><body> <!--首頁容器--> <div id="index-container"> <!--信息菜單--> <div id="index-navigationbar"> <ul class="layui-nav" style="text-algin:right;background-color: black;"> <li class="layui-nav-item">  <a href="">控制臺<span class=" layui-badge">9</span></a> </li> <li class="layui-nav-item">  <a href="">個人中心<span class=" layui-badge-dot"></span></a> </li> <li class="layui-nav-item" lay-unselect="">  <a href="javascript:;" ><img src="http://t.cn/RCzsdCq" class="layui-nav-img">我</a>  <dl class="layui-nav-child">  <dd><a href="javascript:;" >修改信息</a></dd>  <dd><a href="javascript:;" >安全管理</a></dd>  <dd><a href="javascript:;" >退了</a></dd>  </dl> </li> </ul> </div>  <!--操作菜單--> <div id="index-commonmenu"> <ul class="layui-nav layui-nav-tree" lay-filter="demo" style="margin-right:10px;height:538px;"> <!-- <li class="layui-nav-item">  <a href="javascript:;" >筆記管理</a>  <dl class="layui-nav-child">  <dd><a href="javascript:;" meun_id=1>筆記列表</a></dd>  <dd><a href="javascript:;" >分享列表</a></dd>  </dl> </li> <li class="layui-nav-item">  <a href="javascript:;" >解決方案</a>  <dl class="layui-nav-child">  <dd>  <a href="javascript:;" >其他</a>  <dl class="layui-nav-child">  <dd><a href="javascript:;" >三級菜單</a></dd>  </dl>  </dd>  <dd><a href="">后臺模版</a></dd>  <dd><a href="">電商平臺</a></dd>  </dl> </li> <li class="layui-nav-item"><a href="javascript:;" >云市場</a></li> <li class="layui-nav-item"><a href="javascript:;" >社區</a></li>--> </ul> </div>  <!--頁面選項卡--> <div id="indixe-tab"> <div class="layui-tab" lay-allowClose="true" lay-filter="demo1" style="margin:0px;padding:0px;"> <ul class="layui-tab-title">  </ul> <div class="layui-tab-content" style="margin:0px;padding:0px;">  </div> </div> </div>  <div style="clear: both"></div>  </div></body></html><script type="text/javascript" src="/layui.js"></script><script src="https://code.jquery.com/jquery-3.3.1.min.js"></script><script> //注意:導航 依賴 element 模塊,否則無法進行功能性操作 layui.use('element', function(){ var $ = layui.jquery ,element = layui.element;  element.on('nav(demo)', function(elem){ //console.log(elem.getAttribute("meun_id")); //得到當前點擊的DOM對象 var id=$(this).attr("meun_id"); if(typeof(id)!="undefined"){ console.log('進入方法'); element.tabAdd('demo1', {  title: '新選項'+ (Math.random()*1000|0) //用于演示  ,content: '<iframe src="test.html" style="width:100%;height:491px;" scrolling="auto" frameborder="0"></iframe>'  ,id: id//實際使用一般是規定好的id,這里以時間戳模擬下z }) element.tabChange('demo1', id); } }); //獲取所有的菜單 $.ajax({ type:"GET", url:"http://localhost:8080/test", dataType:"json", success:function(data){ //先添加所有的主材單 $.each(data,function(i,obj){  var content='<li class="layui-nav-item">';  content+='<a href="javascript:;" >'+obj.meunTitle+'</a>';  //這里是添加所有的子菜單  content+=loadchild(obj);  content+='</li>';  $(".layui-nav-tree").append(content); }); element.init(); }, error:function(jqXHR){ aler("發生錯誤:"+ jqXHR.status); } });  //組裝子菜單的方法 function loadchild(obj){ if(obj==null){ return; }  var content=''; if(obj.childrenList!=null && obj.childrenList.length>0){ content+='<dl class="layui-nav-child">'; }else{ content+='<dl>'; }  if(obj.childrenList!=null && obj.childrenList.length>0){ $.each(obj.childrenList,function(i,note){  content+='<dd>';  content+='<a href="javascript:;" >'+note.meunTitle+'</a>';  if(note.childrenList==null){  return;  }  content+=loadchild(note);  content+='</dd>'; });  content+='</dl>'; } console.log(content); return content; } });</script>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
隔壁老王国产在线精品| 九九久久久久久久久激情| 亚洲视频电影图片偷拍一区| 成人激情视频在线观看| 国产精品96久久久久久又黄又硬| 国产精品久久久久久久久久久久久| 欧美激情图片区| 久久精品中文字幕一区| 日韩av毛片网| 亚洲一区二区三区久久| 国产精品一区二区久久国产| 亚洲色图欧美制服丝袜另类第一页| 国产成人精彩在线视频九色| 国产精品久久久久久久久久久久久久| 精品亚洲一区二区三区四区五区| 黑人巨大精品欧美一区二区| 95av在线视频| 亚洲精选一区二区| 欧美激情免费观看| 亚洲成人国产精品| 欧美日韩加勒比精品一区| 日韩高清有码在线| 日韩精品中文字幕在线观看| 高清欧美性猛交| 久久精品国产电影| 亚洲欧美日韩国产精品| 精品在线观看国产| 亚洲精品成人免费| 欧美激情精品久久久久久| 国产成人精品免高潮在线观看| 91在线高清免费观看| 欧美情侣性视频| 欧美插天视频在线播放| 国产精品久久久久国产a级| 伊人男人综合视频网| 久久久亚洲影院你懂的| 国产欧美精品在线播放| 日韩激情第一页| 国产精品日韩一区| 成人在线观看视频网站| 国产精品高潮呻吟久久av无限| 亚洲视频在线免费观看| 一区二区在线免费视频| 日韩av理论片| 91免费福利视频| 精品欧美aⅴ在线网站| 97超碰蝌蚪网人人做人人爽| 色噜噜国产精品视频一区二区| 久久激情视频免费观看| 91美女高潮出水| 久久久久一本一区二区青青蜜月| 正在播放国产一区| 日韩黄色在线免费观看| 91伊人影院在线播放| 欧美疯狂xxxx大交乱88av| 久久久精品2019中文字幕神马| 亚洲丁香婷深爱综合| 欧美肥老太性生活视频| 5566成人精品视频免费| 国产成人免费91av在线| 亚洲午夜未满十八勿入免费观看全集| 一区二区国产精品视频| 国产精品成人一区二区三区吃奶| 亚洲肉体裸体xxxx137| 亚洲欧美日韩在线高清直播| 久久国产加勒比精品无码| 亚洲午夜激情免费视频| 亚洲国产成人91精品| 国产精品亚发布| 亚洲女性裸体视频| 97欧美精品一区二区三区| 亚洲成人激情在线观看| 亚洲电影免费观看高清完整版| 最近2019中文字幕一页二页| 国产精品日日做人人爱| 国产欧美精品在线播放| 欧美久久精品午夜青青大伊人| 国产精品视频网址| 精品久久久久久中文字幕一区奶水| 色综合久久88色综合天天看泰| 高清日韩电视剧大全免费播放在线观看| 欧美色xxxx| 91高清免费视频| 国产精品视频999| 欧美日韩在线视频一区| 欧美一区在线直播| 亚洲电影在线观看| 97精品国产97久久久久久免费| 精品欧美国产一区二区三区| 国产在线观看一区二区三区| 欧美人与性动交| 午夜精品99久久免费| 日本欧美一级片| 午夜精品久久久久久久久久久久久| 国内精品美女av在线播放| 成人免费视频xnxx.com| 欧亚精品中文字幕| 亚洲色图第一页| 欧美激情一级精品国产| 欧美特级www| 欧美香蕉大胸在线视频观看| 亚洲免费成人av电影| 奇米一区二区三区四区久久| 日韩成人av网| 91精品91久久久久久| 伊是香蕉大人久久| 91在线观看免费观看| 亚洲xxxx做受欧美| 国产精品国产自产拍高清av水多| 日本久久久久久| 久久视频在线看| 91免费欧美精品| 韩国精品久久久999| 欧美国产中文字幕| 国产日本欧美视频| 欧美成人精品一区二区| 欧美激情在线狂野欧美精品| 亚洲女同精品视频| 日韩在线免费av| 91日韩在线播放| 国产成人综合精品在线| 55夜色66夜色国产精品视频| 热re99久久精品国产66热| 中文字幕一精品亚洲无线一区| 国产精品www色诱视频| 日韩av在线网| 日韩国产高清污视频在线观看| 亚洲国产成人久久| 亚洲天堂视频在线观看| 成人h片在线播放免费网站| 日本午夜在线亚洲.国产| 久久久久久久国产精品视频| 一区二区欧美在线| 久久精品国产清自在天天线| 国产精品久久久久久久久久东京| 国产精品视频播放| 国产精品午夜国产小视频| 中文字幕亚洲欧美一区二区三区| 久久91精品国产91久久跳| 日韩av在线网页| 久久香蕉频线观| 亚洲片在线观看| 亚洲电影免费观看| 91成人国产在线观看| 久久精品亚洲热| 久久精品一本久久99精品| 欧美激情极品视频| 中文字幕一区二区精品| 亚洲视频一区二区| 国产成人精品亚洲精品| 在线观看欧美日韩国产| 国产亚洲欧美日韩一区二区| 亚洲欧美日韩国产中文专区| 国产精品普通话| 在线视频欧美日韩| 亚洲白虎美女被爆操| 亚洲人成自拍网站| 国产精品久久国产精品99gif| 欧美极品少妇xxxxx| 国产一区二区日韩精品欧美精品| 亚洲欧美日韩国产精品| 欧美激情aaaa| 欧美一区二区视频97| 日韩欧美在线播放|