1. ajax请求生成jsTree

  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

  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

jsTree使用记录的更多相关文章

  1. jstree的基本应用----记录

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

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

    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...

  3. 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

  4. 在Bootstrap开发框架中使用bootstrapTable表格插件和jstree树形列表插件时候,对树列表条件和查询条件的处理

    在我Boostrap框架中,很多地方需要使用bootstrapTable表格插件和jstree树形列表插件来共同构建一个比较常见的查询界面,bootstrapTable表格插件主要用来实现数据的分页和 ...

  5. 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

    在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...

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

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

  7. 树组件——jstree使用

    本文记录的只是我自己当时的代码,每行的注释很清楚了,你自己可以做相应变通 一.使用前提: 1.下载jstree依赖包 2.相关页面引入样式["jstree/themes/default/st ...

  8. 前端-jstree 一些常用功能

    最近使用到了jstree(v3.3.4)这个插件(官网:https://www.jstree.com/),在这里记录下我的使用过程的一些技巧和问题. 1. 获取数据 一般实际项目中用到的数据都是aja ...

  9. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

随机推荐

  1. 19、Java并发性和多线程-嵌套管程锁死

    以下内容转自http://ifeve.com/nested-monitor-lockout/: 嵌套管程锁死类似于死锁, 下面是一个嵌套管程锁死的场景: 线程1获得A对象的锁. 线程1获得对象B的锁( ...

  2. 安全简单解决MVC 提示 检测到有潜在危险的 Request.Form 值.

    一般使用富文本编辑器的时候.提交的表单中包含HTML字符,就会出现此错误提示. 使用 ValidateInput(false) 特性标签并不能解决此问题. 网上前篇一律的回答是修改Web.Config ...

  3. CI session 类的用法

    最近使用codeingiter框架,发现默认的session 不是很好用,以下是用法总结:使用的是2.0.2的版本 1.扩展自带的session类:application/libraries/MY_s ...

  4. 转:Redis 缓存策略

    转:http://api.crap.cn/index.do#/web/article/detail/web/ARTICLE/7754a002-6400-442d-8dc8-e76e72d948ac 目 ...

  5. 微软公有云Azure是惠及全人类的计算资源

    回归往事,1975年,微软以DOS创业.在随后的三十年中,微软给人类贡献了视窗操作系统Windows,至今,人们对桌面操作系统XP仍然不离不弃.可是,面对互联网的兴起.微软应该怎么办呢? 微软内部不乏 ...

  6. ping测试局域网内主机是否alive

    [root@zabbix ~]# cat alivehost.sh #!/bin/bash #Checks to see if hosts 192.168.1.100-192.168.1.200 ar ...

  7. 不仅开源,而且对企业应用完全免费!ExtAspNet弃用GPL v2,拥抱Apache License 2.0(转)

    不仅开源,而且对企业应用完全免费!ExtAspNet弃用GPL v2,拥抱Apache License 2.0(转) 提出问题 ExtAspNet开源以来,一直坚持开源免费的原则,但是其GPL v2的 ...

  8. java使用poi读取doc和docx文件(maven自动导入依赖包)

    java使用poi读取doc和docx文件(maven自动导入依赖包) 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝 ...

  9. C# winform通过按钮上移下移 解决了datasource绑定问题

    事件代码: private void btn_frmDicType_MoveUp_Click(object sender, EventArgs e) { int lstLength = this.ls ...

  10. Luogu4198 楼房重建

    https://zybuluo.com/ysner/note/1124880 题面 带修改的区间维护最大斜率. 题面 解析 用线段树区间维护斜率. 考虑如何向上合并. 左半段一定有贡献. 如果左半段的 ...