zoukankan      html  css  js  c++  java
  • JQuery实现折叠菜单

    最近在做ERP系统,框架的菜单页面,采用了二级菜单的模式。需要使用折叠菜单。这个之前做过,但是出了学校之后就很久没有用过了,翻了翻文档。用JQuery实现了一下:

    一个简单的二级菜单

    1  <div class="bartitleFAQ">
    2 <button id="btn">服务管理 </button>
    3 <div class="FAQlist">
    4 <ul>
    5 <li><a href='#'> 等待提交</a></li>
    6 <li><a href='#' title=''> 等待发布</a></li>
    7 <li><a href='#' title=''> 正式项目</a></li>
    8 <li><a href='#' title=''> 点此新增</a></li></ul>
    9 </div>

    我直接使用的JQuery逻辑实现:

     1 $(document).ready(function(){
     2   //载入页面时,将二级菜单隐藏
     3   $(".FAQlist").css("display","none");
     4   //点击事件
     5   $("#btn").click(function(){
     6    //判断是否隐藏
     7    if($(".FAQlist").css("display") == "none"){
     8     $(".FAQlist").css("display","block");
     9    }else{
    10     $(".FAQlist").css("display","none");
    11    }
    12   });
    13  });

    这样就可以实现一个简单的菜单折叠效果了。

    改进:

    后来我发现,菜单的折叠效果,使用的都是同一个逻辑,只是不同的按钮触发事件罢了。因此,我觉得将折叠效果的逻辑抽取成方法,可以提高代码的重用。

    如下是连个二级菜单:

     1 <div class="order">
     2     <button id="order_btn">订单管理</button>
     3 </div>
     4 <div class="order_list">
     5     <ul>
     6         <li><a href="#">查看订单</a></li>
     7         <li><a href="#">新建订单</a></li>
     8         <li><a href="#">失败订单</a></li>
     9     </ul>
    10 </div>
    11 
    12 <div class="user">
    13     <button id="user_btn" >用户管理</button>
    14 </div>
    15 <div class="user_list">
    16     <ul>
    17         <li><a href="#">增加用户</a></li>
    18         <li><a href="#">用户列表</a></li>
    19     </ul>
    20 </div>

    JQuery:

     1 $(document).ready(function(){
     2       //载入页面时,将二级菜单隐藏
     3       //$(".order_list").css("display","none");
     4       $("div[class$='_list']").css("display","none");
     5       //点击订单事件
     6       $("#order_btn").click(function(){
     7        
     8        tt(this);
     9        /* if($(".order_list").css("display") == "none"){
    10         $(".order_list").css("display","block");
    11        }else{
    12         $(".order_list").css("display","none");
    13        } */
    14       });
    15       //点击user按钮事件
    16       $("#user_btn").click(function(){
    17            
    18          tt(this);
    19            
    20           });
    21      });
    22      //抽取逻辑的方法
    23      function tt(val){
    24          cl=$(val).parent().attr("class");
    25         //alert($("."+cl+"_list").css("display") == "none");
    26         if($("."+cl+"_list").css("display") == "none"){
    27             $("."+cl+"_list").css("display","block");
    28         }else{
    29             $("."+cl+"_list").css("display","none");
    30         }     
    31      }

    注意:
           使用这个方法的话,页面的元素命名要采取一定约定规则。我的使用的规则是一级div为name,button是name_btn;二级div的命名为name_list。

  • 相关阅读:
    mysql nulls first nulls last解决方案
    解决Incorrect integer value: '' for column 'id' at row 1的方法
    Centos 7.4忘记密码的情况下,修改root密码
    解决pom文件第一行报错(unknown)-亲测有效
    快慢指针应用总结
    gRPC 小记
    [3D跑酷] DataManager
    [3D跑酷] GameManager
    发布资源到Asset Store
    真人动作捕捉系统 for Unity
  • 原文地址:https://www.cnblogs.com/chengxuyuanxiaoye/p/3684686.html
Copyright © 2011-2022 走看看