js Tree 简单使用例子

来源:互联网 发布:dota后期三大核 知乎 编辑:程序博客网 时间:2024/06/05 06:45

点击input输入框弹出树

jsTree下载地址点击打开链接

首先在html页面设置一个div用来放置jsTree,设置好宽度和高度并把树设为不占位隐藏,如果显示位置靠下,可以设置z-index样式;如果树的内容长度太长,可以加上overflow样式使其出现滚动条

<div id="areaTree" style="display:none"></div>

后台代码

/** * 获取区域树    * @Title: getAreaTree * @return  */public List<JsTreeVM> getAreaTree() {List<JsTreeVM> treeVoList = new ArrayList<>();  //用来保存树的数据List<BArea> orgList = selectList();             //查询数据库里的数据,数据要有父子关系for (BArea barea : orgList) {                   //查询出的数据遍历后放入treeVolist           JsTreeVM jsTreeVM = new JsTreeVM();jsTreeVM.setId(barea.getAreaCode());    //设置idjsTreeVM.setParent(barea.getPCode());   //设置父节点idjsTreeVM.setText(barea.getAreaName());  //设置显示内容treeVoList.add(jsTreeVM);               }return treeVoList;}
jsTreeVM类(有些属性会用不到,一般只用id、parent、text就够了)

@Data@EqualsAndHashCodepublic class JsTreeVM implements Serializable {private static final long serialVersionUID = 1L;private String id;private String text;private String icon;private TreeStateVM state;private String parent;private String code;private String type;private int level;}
前台代码
首先要初始化树,就是把向后台请求的数据放入一个全局数组

  var tree = {}; $.ajax({      url : $.baseConfig.get("baseUrl") +"/bArea/getAreaTree",      type : "get",      dataType : "json",      async : false,      contentType : "application/json;utf-8",      success : function(data) {   treeData = data; //把数据放入全局数组      },      error : function(data) {      } })          
然后是加载树,该例子是单选树,若是多选树只需把plugins属性改为plugins : [ 'wholerow', 'contextmenu', 'types','checkbox' ]即可
   // 加载树,赋值   $(#areaTree).jstree({       core: {              check_callback: true,              data: treeData    //全局数组              },       plugins: ['wholerow', 'contextmenu', 'types'],       types: {                'default': {                           'icon': false  //设置图标                 }                 'file' : {             'icon' : 'fa fa-file-text-o'//可放置css样式           }                }    })

节点选择事件

   $(#areaTree).on('select_node.jstree', function (e, data) {// 节点选择事件             selectNodeId = data.node.text;       //选择节点             if(selectNodeId != "北京市" && selectNodeId != "上海市"){ //如果节点不是北京市、上海市               $('#ssqy').val(selectNodeId);//赋值给araename选择框                   $("#areaTree").hide();  //隐藏树                        }else{               $('#ssqy').val(selectNodeId);//赋值给araename选择框                   $("#areaTree").hide();    //隐藏树               }              });   

点击输入框点击弹出树

    $("#ssqy").click(function(){     var ref = $('#areaTree').jstree(true);     ref.deselect_all(true);     ref.close_all(true);     if($("#areaTree").css("display") != "none"){  $("#areaTree").hide();     }else{   var X = $('#ssqy').offset().top;       //调整树位置   var Y = $('#ssqy').offset().left;    $("#areaTree").css("top",Y-1);   $("#areaTree").css("left",X+34);   $("#areaTree").css("width",$("#ssqy").width()+12);   $("#areaTree").show();     }      });

有时可能需要用到点击空白区域隐藏树

     //点击空白处隐藏组织树     $(document).mouseup(function(e){           var tree = $('#areaTree');   // 设置目标区域           var input =$("#areaTree");           if(!tree.is(e.target)&& tree.has(e.target).length === 0 && !input.is(e.target)){ //Mark 1                if($("#areaTree").css("display") !="none"){                $("#areaTree").hide();                }           }      });

这是我使用jsTree的一些心得,不足之处还请多多见谅微笑




原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 百度网盘好友发的分享不存在怎么办 4g手机的下载速度很慢怎么办 为什么打开百度网盘的速度慢怎么办 百度网盘限制了我的宽带速度怎么办 联通信号很好但网速特别慢怎么办 苹果手机版本低下载不了软件怎么办 国内的手机要上推特和油管要怎么办 推特注册了卡在手机号怎么办 腾讯微信登录的账号密码忘了怎么办 打开手机浏览器自动跳到网页怎么办 游戏包解压后找不到启动的怎么办? 每次都要解压一次才能运行怎么办 误冲了王者荣耀点劵怎么办 机顶盒上开通的vip手机上怎么办 王者荣耀以前玩的区找不到了怎么办 电脑分辨率调高了游戏进不去怎么办 键盘语言更改后进不去系统怎么办 高尔夫旅行款 被锁在车内怎么办 在天猫买东西垫付的运费不退怎么办 天猫店一口价定价定低了怎么办 服务器开机账号改了密码忘了怎么办 小米儿童电话手表开不开机怎么办? 上海拍牌超过5次违章怎么办 拍拍贷不能更新还不了款怎么办 起诉网贷平台不知道地址怎么办 网贷不知道在哪个平台借的怎么办 车过户后出现问题车主不承认怎么办 卖了车买家一直不过户怎么办 我的车卖了但是买家不过户怎么办 如果买家拍了赠品但联系不上怎么办 淘宝产品处罚下架顾客退货怎么办 生源地贷款续贷密码忘了怎么办 助学贷款续贷密码忘了怎么办 京东上回收东西如果是坏的怎么办 58.同城找的工作被骗了怎么办 京东第三方买了二手机怎么办 手机无法显示百度视频的视频怎么办 如果微信被盗号朋友钱被骗怎么办 绑定银行卡的电话号码换了怎么办办 银行卡绑定的手机号空号了怎么办 微信提示绑定银行卡次数超限怎么办