ul li操作多级列表

要求是显示组织结构,会形成树形结构。

Department从微信提供的接口之后,获得信息是id,parentid,name等。

首先需要遍历,对department类增加一个属性,ArrayList<Department>childs.根据parentid,设置每个部门的直系子部门。

public static ArrayList<Department> generateDepart(){
       Token.getPeopleList();
       ArrayList<Department>departments=Token.departlist;
       for(int i=0;i<departments.size();i++){
           Department department=(Department)departments.get(i);
           ArrayList<Department>childdeparts=new ArrayList<Department>();
         //  ArrayList<People>alladdpeople=new ArrayList<People>();
           for(int j=0;j<departments.size();j++){
               if(i!=j){
               Department department1=(Department)departments.get(j);
               if(department.getId()==department1.getParentid()){
                   childdeparts.add(department1);
                 //  alladdpeople.addAll(department1.getPeoplelist());
               }
               }
           }
           department.setChildDeparts(childdeparts);
          // department.getPeoplelist().addAll(alladdpeople);
        
       }
       
       return departments;
   }

之后需要用递归的方法,对部门进行递归,依次显示每个部门,以及其子部门的信息,因为在jsp页面上显示为多级列表,所以使用如下方法。

public   ArrayList<String> printTree(Department department,int blk){
      
       for(int i=0;i<blk;i++)   System.out.print("               ");
      // System.out.println("<li>"+department.getName()+"</li>");
        showlist.add("<li><a href='#'>"+department.getName()+"</a></li>");
       if(department.getChildDeparts().size()!=0){
         //  System.out.println("<ul>");
           showlist.add("<ul>");
           }
       for(int i=0;i<department.getChildDeparts().size();i++){
           
           printTree(department.getChildDeparts().get(i), blk+1);
          
       }
       if(department.getChildDeparts().size()!=0){
           showlist.add("</ul>");
     //  System.out.println("</ul>");
       }
       return showlist;
   }

在页面上显示的效果为:

需要完成的动作是:当点击一个父级的<li>,其子<li>标签会显示,获得消失。

这里用到了jquery动画中slideToggle。

具体实现:

$(document).ready(function()
          {
          $("li").click(function(){
              var node=$(this);
              
             // alert(node.text());
              var list=node.nextAll("ul");
            //  alert(list.text());
              list.slideToggle();
                   });
                      });

 

posted @ 2016-06-08 16:07  bounce  阅读(2610)  评论(0编辑  收藏  举报