1. ajax请求生成jsTree

[javascript] view plaincopy
  1. <span style="font-size:14px;"><script>
  2. var r = []; // 权限树中被选中的叶子节点
  3. var currentGroupId;
  4. function showPermitTree(id) {
  5. currentGroupId = id;
  6. $.ajax({
  7. data : "currentGroupId=" + id,
  8. type : "POST",
  9. //dataType : 'json',
  10. url : "/test/permittree",
  11. error : function(data) {
  12. alert("出错了!!:" + data);
  13. },
  14. success : function(data) {
  15. //alert("success:" + data);
  16. createPermitTree(data);
  17. }
  18. });
  19. ${'buttonDiv'}.style.display="";
  20. }
  21. function createPermitTree(datastr) {
  22. datastr = eval("" + datastr + "");
  23. $('#permitTree').jstree({
  24. 'plugins' : [ "wholerow", "checkbox", "types" ],
  25. 'core' : {
  26. "themes" : {
  27. "responsive" : false
  28. },
  29. 'data' : datastr
  30. },
  31. "types" : {
  32. "default" : {
  33. "icon" : "fa fa-folder icon-state-warning icon-lg"
  34. },
  35. "file" : {
  36. "icon" : "fa fa-file icon-state-warning icon-lg"
  37. }
  38. }
  39. });
  40. }
  41. // listen for event
  42. $('#permitTree').on('changed.jstree', function(e, data) {
  43. r = [];
  44. var i, j;
  45. for (i = 0, j = data.selected.length; i < j; i++) {
  46. var node = data.instance.get_node(data.selected[i]);
  47. if (data.instance.is_leaf(node)) {
  48. r.push(node.id);
  49. }
  50. }
  51. //alert('Selected: ' + r.join('@@'));
  52. })
  53. function saveTree() {
  54. $.ajax({
  55. data : {'currentGroupId' : currentGroupId,
  56. 'selectedNodes' : r.join('@@')},
  57. type : "POST",
  58. //dataType : 'json',
  59. url : "/test/savetree",
  60. error : function(data) {
  61. alert("出错了!!:" + data);
  62. },
  63. success : function(data) {
  64. alert("保存成功!");
  65. }
  66. });
  67. }
  68. </script></span><span style="font-size:24px;">
  69. </span>

直接把测试项目中一段代码copy过来了,这是一棵带复选框的树。页面有地方点击之后触发showPermitTree(id)函数,发送ajax请求给后台,项目使用的是springmvc框架,后台返回JSONArray.toString。

2. jsTree change事件

上面代码中含change事件。把所有选中的节点的id放到一个数组中。

页面上有个按钮,点击后触发saveTree函数,发请求给后台,把选中的节点的id发给后台。

3.jsTree自定义contextmenu

[javascript] view plaincopy
  1. <script>
  2. $('#jstree').jstree({
  3. core : {
  4. check_callback : true,
  5. data : [
  6. { "id" : "1", "parent" : "#", "text" : "root" },
  7. { "id" : "2", "parent" : "1", "text" : "child 1" },
  8. { "id" : "3", "parent" : "1", "text" : "child 2" }
  9. ],
  10. },
  11. plugins : ["wholerow","contextmenu"],
  12. "contextmenu": {
  13. "items": {
  14. "create": null,
  15. "rename": null,
  16. "remove": null,
  17. "ccp": null,
  18. "add": {
  19. "label": "add",
  20. "action": function (obj) {
  21. var inst = jQuery.jstree.reference(obj.reference);
  22. var clickedNode = inst.get_node(obj.reference);
  23. alert("add operation--clickedNode's id is:" + clickedNode.id);
  24. }
  25. },
  26. "delete": {
  27. "label": "delete",
  28. "action": function (obj) {
  29. var inst = jQuery.jstree.reference(obj.reference);
  30. var clickedNode = inst.get_node(obj.reference);
  31. alert("delete operation--clickedNode's id is:" + clickedNode.id);
  32. }
  33. }
  34. }
  35. }
  36. }).on("ready.jstree", function (e, data) {
  37. data.instance.open_all();
  38. });
  39. </script>

这段代码使用jsTree的contextmenu plugin,去掉jsTree自带的菜单,并自定义菜单

8

转载于:https://www.cnblogs.com/telwanggs/p/7272090.html

jsTree使用记录相关推荐

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

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

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

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

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

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

  4. SpringBoot+Jquery+jsTree实现页面树型结构

    场景 效果 jstree官网 https://www.jstree.com/ 实现 引用CSS样式 使用cdn或者将其下载 <link rel="stylesheet" hr ...

  5. 使用jstree创建无限分级的树(ajax动态创建子节点)

    首先来看一下效果 页面加载之初 节点全部展开后 首先数据库的表结构如下 其中Id为主键,PId为关联到自身的外键 两个字段均为GUID形式 层级关系主要靠这两个字段维护 其次需要有一个类型 publi ...

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

    http://www.cnblogs.com/wuhuacong/p/4759564.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理& ...

  7. jstree禁用父节点点击_Jstree 使用CheckBox插件 选中父节点时被禁用的子节点也会选中问题...

    问题描述: 最近用jstree遇到一个问题,使用CheckBox插件时,当父节点选中时,被禁用的子节点也会选中如下 解决方案: 1.  将jstree升级到最新的版本,v3.3.4及以上就可以 2.修 ...

  8. jstree的简单使用例子

    最近使用到了jstree,感觉是一款灵活的.可多项定制的tree插件: 我这边使用过程记录下: 参考的jstree api网站,以及demo介绍: https://www.jstree.com/api ...

  9. JSTree的基本用法

    描述:JSTree是一个独立的插件,可以运用到.net,java,php等各个地方.JSTree功能庞大,我也是刚接触不久,先暂时记录下基本用法,至于去如何用其它功能,相信会了基本的用法就可以知道如何 ...

最新文章

  1. 对学习JAVA的总结 第一次课
  2. 音视频技术开发周刊 | 187
  3. IO-00. Hello World! (5)
  4. simulink仿真学习(实现半波整流、方波输出) day1
  5. 腾讯视频主演角色弹幕怎么发
  6. lvm 扩展根目录_Lvm扩展根目录容量
  7. mysql 主从 锁库_mysql 5.7.21 主从集群恢复GTID方式(不锁库)
  8. 剑指offer面试题[23]-从上往下打印二叉树(按层序打印)
  9. Codeblocks中搭建Qt环境遇到个问题
  10. ExtFrame的特点与缺点
  11. 安卓如何隐藏APP图标探讨
  12. 关于360提示发现木马—HEUR/QVM.Malware.Gen
  13. openGL平行光、点光、聚光
  14. 推荐一本迷你中文书《JavaScript Promise迷你书(中文版)》
  15. 【C#】【HttpClient】下载网络文件
  16. 梦想天空分外蓝,实习结束总结
  17. GSMA RCS架构
  18. P1941 飞扬小鸟题解
  19. 浏览器上的Cookies有什么用?超级浏览器防关联如何实现?
  20. 信号的产生——pulstran函数(脉冲序列发生器函数)

热门文章

  1. 浙江新增python课程_今年9月起 浙江八年級新增Python編程課程
  2. DataNode之文件系统数据集FsVolumeList
  3. FPGA跨时钟域处理方法延迟法
  4. 【C语言】大程序(.c和.h)头文件和源文件
  5. 单一课和综合课的划分依据_缠论108课第105课:股票的操作中远离小聪明,保持机械性的操作...
  6. 【C语言】C语言学习整理-putchar,printf,getchar,scanf定义及区别
  7. 【JAVA SE】第十五章 ArrayList、LinkedList、HashMap和HashSet
  8. 【高校宿舍管理系统】第三章 Layui整合Axios
  9. elasticsearch 学习须知
  10. oracle 10g安装需注意细节