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的一些心得,不足之处还请多多见谅
阅读全文
0 0
- js Tree 简单使用例子
- template.js简单使用例子
- js中dom使用简单例子
- 简单js例子
- 简单js例子
- js Tree(梅花雪)最简单的例子(来字MEIZZ)
- 使用DWR实现JS调用JAVA类的简单例子
- tree.js 使用
- $.tree 的简单使用
- js 使用对象 例子
- highlight.js使用例子
- vue.js使用例子
- Node.js 使用例子
- js里ajax简单例子
- JS简单实现后退例子
- 简单JS getElementsByName的例子
- 简单JS传出参数例子
- js正则表达式简单例子
- JavaScript中对象调用其他函数/对象成员
- 百度面试题20170814
- Windows UDP socket recvfrom返回10054错误的解决办法
- AS-cannot resolve constructor intent
- C# String与StringBuilder
- js Tree 简单使用例子
- VS2017上执行VS2013项目错误MSB802之解决方案
- Mapreduce模型
- Android ActionBar应用实战,高仿微信主界面的设计
- 算法竞赛入门——因子和阶乘
- 矩阵乘法与运用
- [KMP+矩阵快速幂加速]BZOJ 1009——[HNOI2008]GT考试
- 第一章:1.2.2系统分类(一)
- CSS, JavaScript, jQuery实现标签页切换