欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

级联菜单

程序员文章站 2022-03-02 13:56:19
级联菜单 效果图 1 9 10
    11
  • 蜀国 12
      13
    • 主 ......

级联菜单

效果图

级联菜单

 

  1 <style>
  2     li{
  3         cursor: pointer;     //鼠标是小手
  4     }
  5     .jiu{
  6         display:none;
  7     }
  8 </style>
  9 <body>
 10     <ul>
 11         <li>蜀国
 12             <ul class="jiu">
 13                 <li>主公
 14                     <ul class="jiu">
 15                         <li>刘备</li>
 16                         <li>刘禅</li>
 17                     </ul>
 18                 </li>
 19                 <li>五虎上将
 20                     <ul class="jiu">
 21                         <li>关羽</li>
 22                         <li>张飞</li>
 23                         <li>赵云</li>
 24                         <li>黄忠</li>
 25                         <li>马超</li>
 26                     </ul>
 27                 </li>
 28                 <li>谋士
 29                     <ul class="jiu">
 30                         <li>卧龙</li>
 31                         <li>凤雏</li>
 32                     </ul>
 33                 </li>
 34             </ul>
 35         </li>
 36         <li>魏国
 37             <ul class="jiu">
 38                 <li>主公
 39                     <ul class="jiu">
 40                         <li>曹操</li>
 41                         <li>曹丕</li>
 42                     </ul>
 43                 </li>
 44                 <li>武将
 45                     <ul class="jiu">
 46                         <li>典韦</li>
 47                         <li>夏侯惇</li>
 48                         <li>许褚</li>
 49                     </ul>
 50                 </li>
 51                 <li>文臣
 52                     <ul class="jiu">
 53                         <li>杨修</li>
 54                         <li>许攸</li>
 55                         <li>司马懿</li>
 56                     </ul>
 57                 </li>
 58             </ul>
 59         </li>
 60         <li>吴国
 61             <ul class="jiu">
 62                 <li>主公
 63                     <ul class="jiu">
 64                         <li>孙策</li>
 65                         <li>孙权</li>
 66                     </ul>
 67                 </li>
 68                 <li>武将
 69                     <ul class="jiu">
 70                         <li>周瑜</li>
 71                         <li>吕蒙</li>
 72                     </ul>
 73                 </li>
 74                 <li>文臣
 75                     <ul class="jiu">
 76                         <li>诸葛瑾</li>
 77                         <li>张昭</li>
 78                         <li>鲁肃</li>
 79                     </ul>
 80                 </li>
 81             </ul>
 82         </li>
 83         <li>中原</li>
 84         <li>大漠</li>
 85     </ul>
 86 </body>
 87 </html>
 88 <script>
 89     // 1.给所有的li添加点击事件
 90     // 2.判断li内部是否有子元素ul
 91     // 3.如果有ul,隐藏就变显示,显示就变隐藏
 92     
 93     // 原生
 94     var list = document.getelementsbytagname("li");
 95     for(var i = 0; i < list.length; i++){
 96         list[i].onclick = function(e){
 97             var e = e || event;
 98             e.stoppropagation ?  e.stoppropagation() : e.cancelbubble = true;  //阻止冒泡
 99             if(this.lastelementchild){     //有下级菜单
100                 // 获取不到最后一个元素的话,返回null,null没有style属性会报错,所以要判断有没有最后一个元素
101                 if(this.lastelementchild.style.display == "block"){
102                     this.lastelementchild.style.display = "none";
103                 }else{
104                     this.lastelementchild.style.display = "block";
105                 }
106                 
107             }
108         }
109     }
110 </script>

js里判断是否有下级菜单的下一个判断(判断style的属性值),判断不一样儿( == "block"  /  =="none")会导致第一次点击不生效。第二次及以后的点击正常反应。