JsTree的重要函数


更多官方API,请点击JSTree

取消选中

deselect_all ([supress_event]
1. 当设置为true,就不会重复触发changed.jstree 的事件

$("#childZtree").jstree("deselect_all",true);

选中节点

select_node (obj [, supress_event, prevent_open])
1. jsTree节点的ID,每一个节点都有唯一的ID
2. 当设置为true,就不会重复触发changed.jstree 的事件
3. 如果设置为“true”,则选定节点的父级不会打开。这个一定要设定为true,不然就会导致浏览器运行缓慢,多事件匹配


//jstree的bug,用代码选中一个节点后,上一个节点仍是选中的状态
//取消选中, 然后再选择我们需要选中的数
$("#childZtree").jstree("deselect_all",true);
$('#childZtree').jstree('select_node', selectNode.original.id,true);

打开节点

open_node (obj [, callback, animation])
1. jsTree节点的ID,每一个节点都有唯一的ID
2. 回调函数
3. 节点的动画效果

$("#childZtree").jstree("open_node",parentId);

创建节点

create_node ([par, node, pos, callback, is_loaded])
1. 父类的id
2. 子类的JSON数据
3. “first” and “last” 生成节点的排序,默认是last
4. false 回调函数
5. true 是否加载 内部参数表示如果父节点成功地加载

这个函数有问题,不是特别好用,下面的是,弄了好久,才试出来,可以通过这段代码完成节点的添加操作

//创建节点
$("#childZtree").jstree("create_node", parentId,  childNode[i], "last", false, true);

动态创建节点

动态创建JSTree节点的难点
1、数据动态加载
2、设定加载完数据选中
3、设定的数据选择和初始化逻辑问题

//rootNode  是ajax请求获取的数据,最好是将数据获取和表示用两个函数写,不然就会导致逻辑过多而混乱$("#childZtree").jstree({'core': {'check_callback':true,'multiple':false,"expand_selected_onload":true,'data': rootNode },}).on('select_node.jstree', function (e, data) {initButton();selectNode = data.node;}).on('changed.jstree', function (e, data) {var action = data.action;if(action == "select_node"){if(data.node.children.length ==0 ){//子节点 createChildNode 子节点的函数createChildNode(model,saikeiKb,selectNode.original.id);}//jstree的bug,用代码选中一个节点后,上一个节点仍是选中的状态//取消选中, 然后再选择我们需要选中的数据  $("#childZtree").jstree("deselect_all",true);$('#childZtree').jstree('select_node', selectNode.original.id,true);}}).on('create_node.jstree', function (e, data) {//在创建节点事件监听中设定默认的选中节点if(stCodeStr != null && stCodeStr == data.node.original.id){$("#kamokuStName").val(data.node.original.name);$("#jstree").jstree("open_node",stCodeStr);if(!hasSelect){$('#childZtree').jstree('select_node', stCodeStr,true);hasSelect = true;}}//第二个参数的初始化if(enCodeStr != null && enCodeStr == data.node.original.id){$("#kamokuEnName").val(data.node.original.name);if(!hasSelect){$('#childZtree').jstree('select_node', enCodeStr,true);hasSelect = true;}}}).on("loaded.jstree", function (event, data) {//在loaded节点中,做树完成后,点击树的操作,这个节点方法只调用一次
//只会在刚创建完节点,然后设定节点里面的方法}}}}

创建子节点

子节点创建,需要关注节点创建函数的迭代调用(自己调用自己)
代码不是完全代码,部分删掉了

function createChildNode(model,saikeiKb,parentId,selectCode){var childNode = getChildNodeJson(model,saikeiKb,parentId);if(childNode == null){return ;}for(var i=0;i<childNode.length;i++){//创建节点$("#childZtree").jstree("create_node", parentId,  childNode[i], "last", false, true);}//当只有子节点中还有数据,我们接着创建节点,知道没有数据if(childNode.length ==1){createChildNode(model,saikeiKb,childNode[0].id,selectCode);}if(childNode.length == 0){//做一些这个节点的逻辑操作$('#childZtree').jstree('select_node', parentId);})if(childNode.length > 0){//当上一个节点有多个节点,打开父节点     $("#childZtree").jstree("open_node",parentId);}}
}

JsTreeの使用-yellowcong相关推荐

  1. jstree 选中指定节点-yellowcong

    项目中使用的树框架是Jstree,经常会遇到默认选中节点的问题,刚开始使用Jstree的同学,肯定是会被官方的API坑哭了,JsTree官方API,这篇文章介绍jstree 默认某个节点选中,和如何用 ...

  2. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用...

    为什么80%的码农都做不了架构师?>>>    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap ...

  3. jsTree设置默认节点全部展开的方法

    最近项目有需求,当jsTree加载完毕的时候想让所有的节点都打开,便于用户操作,遂参考API,这里记录下来.好记性不如烂笔头: //jsTree的初始化$tree.jstree({'plugins': ...

  4. jsTree 插件Ajax数据

    完整代码 <!DOCTYPE html> <html><head><meta charset="utf-8"><meta na ...

  5. 【笔记】jstree插件的基本使用

    官网地址:https://www.jstree.com/ json返回参数格式:推荐第二种方式 不需要在重新拼接返回格式 不刷新页面重新初始化 jstree时使用:$.jstree.destroy() ...

  6. SpringBoot+Jquery+Jstree实现企业架构管理

    场景 效果 SpringBoot+Jquery+jsTree实现页面树型结构: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90 ...

  7. JsTree中提示:Cannot read property 'core' of underfined

    场景 Jstree的树形结构正好好运行,给数据添加了禁用状态后,就提示: 在仔细比对代码没错订单情况下,猜测是数据原因. 实现 因为添加了是否禁用状态,首次进入页面时默认加载启用的数据,但是启用的数据 ...

  8. SpringBoot+JsTree实现在编辑时能选择树形结构并获取选中的ID

    场景 SpringBoot+Jquery+jsTree实现页面树型结构: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90897 ...

  9. Sqlserver中使用ISNULL、CAST、CASE完成对jsTree数据的查询

    场景 SpringBoot+Jquery+jsTree实现页面树型结构: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90897 ...

最新文章

  1. 在vs2010中使用nuget安装EF5报错解决方案
  2. python进行图片的定位切割_python3 实现对图片进行局部切割的方法
  3. boost::multi_array模块实现在矩阵上测试切片
  4. Ajax中文乱码问题解决方法(服务器端用servlet)
  5. Effective C++ .07 virtual析构函数的提供
  6. 【clickhouse】clickhouse数据文件目录移动到新目录并建立软连接
  7. Postgres用returning实现mysql的last_insert_id
  8. Springboot--Ehcache-Jpa (1)
  9. Python的静态类型之旅
  10. 求1-2+3-4+5 ... 99的所有数的和
  11. 连接数据库进行省市区三级联动
  12. Windows 7下可用的“超级终端”——Hypertrm和SecureCRT
  13. iPhone屏幕分辨率开发尺寸
  14. 8法则的挑战:长尾理论与长尾效应
  15. 一、基础入门下------------视频处理
  16. java唯一的id_Java:唯一的10位数ID
  17. Spring使用WebSocket、SockJS、STOMP实现消息功能
  18. 点击化学DBCO-PEG-SPDP|二苯并环辛炔-聚乙二醇-3-(2-吡啶二硫代)丙酸N-羟基琥珀酰亚胺酯
  19. dom4j读取xml
  20. javase 双色球选7球 红球在【1-36】之间,选出6个,且不能重复 篮球在【1-16】之间,选出1个

热门文章

  1. 陈老师深度为你解析,单片机的运行原理
  2. Linux_Geany使用指南
  3. 模糊神经网络应用实例,模糊算法和神经网络
  4. 计算机视觉学习资料汇总
  5. 智能android电视更换播放器,GitHub - kaigeLove/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
  6. NXOpen UG二次开发
  7. 播放路由宝储存卡中的dat文件的方法
  8. Android实战简单新闻客户端(2)---新闻分页界面设计
  9. CAXA三维CAD教程:简单几步设计房屋
  10. html中的空格怎么写,html中空格代码是什么?(总结)