jsTree使用记录
1. ajax请求生成jsTree
- <span style="font-size:14px;"><script>
- var r = []; // 权限树中被选中的叶子节点
- var currentGroupId;
- function showPermitTree(id) {
- currentGroupId = id;
- $.ajax({
- data : "currentGroupId=" + id,
- type : "POST",
- //dataType : 'json',
- url : "/test/permittree",
- error : function(data) {
- alert("出错了!!:" + data);
- },
- success : function(data) {
- //alert("success:" + data);
- createPermitTree(data);
- }
- });
- ${'buttonDiv'}.style.display="";
- }
- function createPermitTree(datastr) {
- datastr = eval("" + datastr + "");
- $('#permitTree').jstree({
- 'plugins' : [ "wholerow", "checkbox", "types" ],
- 'core' : {
- "themes" : {
- "responsive" : false
- },
- 'data' : datastr
- },
- "types" : {
- "default" : {
- "icon" : "fa fa-folder icon-state-warning icon-lg"
- },
- "file" : {
- "icon" : "fa fa-file icon-state-warning icon-lg"
- }
- }
- });
- }
- // listen for event
- $('#permitTree').on('changed.jstree', function(e, data) {
- r = [];
- var i, j;
- for (i = 0, j = data.selected.length; i < j; i++) {
- var node = data.instance.get_node(data.selected[i]);
- if (data.instance.is_leaf(node)) {
- r.push(node.id);
- }
- }
- //alert('Selected: ' + r.join('@@'));
- })
- function saveTree() {
- $.ajax({
- data : {'currentGroupId' : currentGroupId,
- 'selectedNodes' : r.join('@@')},
- type : "POST",
- //dataType : 'json',
- url : "/test/savetree",
- error : function(data) {
- alert("出错了!!:" + data);
- },
- success : function(data) {
- alert("保存成功!");
- }
- });
- }
- </script></span><span style="font-size:24px;">
- </span>

直接把测试项目中一段代码copy过来了,这是一棵带复选框的树。页面有地方点击之后触发showPermitTree(id)函数,发送ajax请求给后台,项目使用的是springmvc框架,后台返回JSONArray.toString。
2. jsTree change事件
上面代码中含change事件。把所有选中的节点的id放到一个数组中。
页面上有个按钮,点击后触发saveTree函数,发请求给后台,把选中的节点的id发给后台。
3.jsTree自定义contextmenu
- <script>
- $('#jstree').jstree({
- core : {
- check_callback : true,
- data : [
- { "id" : "1", "parent" : "#", "text" : "root" },
- { "id" : "2", "parent" : "1", "text" : "child 1" },
- { "id" : "3", "parent" : "1", "text" : "child 2" }
- ],
- },
- plugins : ["wholerow","contextmenu"],
- "contextmenu": {
- "items": {
- "create": null,
- "rename": null,
- "remove": null,
- "ccp": null,
- "add": {
- "label": "add",
- "action": function (obj) {
- var inst = jQuery.jstree.reference(obj.reference);
- var clickedNode = inst.get_node(obj.reference);
- alert("add operation--clickedNode's id is:" + clickedNode.id);
- }
- },
- "delete": {
- "label": "delete",
- "action": function (obj) {
- var inst = jQuery.jstree.reference(obj.reference);
- var clickedNode = inst.get_node(obj.reference);
- alert("delete operation--clickedNode's id is:" + clickedNode.id);
- }
- }
- }
- }
- }).on("ready.jstree", function (e, data) {
- data.instance.open_all();
- });
- </script>
这段代码使用jsTree的contextmenu plugin,去掉jsTree自带的菜单,并自定义菜单
- 顶
- 8
- 踩
jsTree使用记录的更多相关文章
- jstree的基本应用----记录
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...
- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- 在Bootstrap开发框架中使用bootstrapTable表格插件和jstree树形列表插件时候,对树列表条件和查询条件的处理
在我Boostrap框架中,很多地方需要使用bootstrapTable表格插件和jstree树形列表插件来共同构建一个比较常见的查询界面,bootstrapTable表格插件主要用来实现数据的分页和 ...
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
http://www.cnblogs.com/wuhuacong/p/4759564.html 在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理& ...
- 树组件——jstree使用
本文记录的只是我自己当时的代码,每行的注释很清楚了,你自己可以做相应变通 一.使用前提: 1.下载jstree依赖包 2.相关页面引入样式["jstree/themes/default/st ...
- 前端-jstree 一些常用功能
最近使用到了jstree(v3.3.4)这个插件(官网:https://www.jstree.com/),在这里记录下我的使用过程的一些技巧和问题. 1. 获取数据 一般实际项目中用到的数据都是aja ...
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
随机推荐
- Ubuntu 16.04下MySQL 5.7.18取消开机启动(解决无法使用Sysvinit(update-rc.d/sysv-rc-conf)脚本关闭)
首先了解以下运行级别对应工具的变化历史: 1.Ubuntu 6.10及以前版本使用Sysvinit. 2.Ubuntu 14.10及以前版本使用Upstart但是还留着Sysvinit并存. http ...
- 浅谈SQL Server 对于内存的管理--宋沄剑 英文名:CareySo
http://www.cnblogs.com/CareySon/archive/2012/08/16/HowSQLServerManageMemory.html
- 基于FFI模块CAPI与JavaScript的各种类型匹配总结
0.写在前面: 1)涉及的关键词定义: 传入:JavaScript向CAPI传值 传出:CAPI向JavaScript传值 2)关于类和结构体的封装,需要严格执行内存对齐,以防止读取越界,但是避免不了 ...
- HDU 5100 Chessboard 用 k × 1 的矩形覆盖 n × n 的正方形棋盘
pid=5100">点击打开链接 Chessboard Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32 ...
- 飞思卡尔 imx6 GC0308 摄像头驱动配置调试过程
GC0308摄像头驱动程序使用的是linux v4l2协议,通过i2c信号进行控制.GC0308摄像头.对上电时序要求非常严格,一定要依据datasheet初始化摄像头. 本驱动使用的3.10内核,所 ...
- iOS常用的宏定义总结
字符串是否为空 1 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str le ...
- linux下使用script和scriptreplay对命令行操作进行录像
转自:linux下用script和scriptreplay对命令行操作录像 在Linux中可以使用script命令来记录命令行的操作过程,并使用scriptreplay命令对命令操作进行回放,操作步骤 ...
- ASP.NET Overview
https://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx ASP.NET is a unified统一的 Web development model ...
- BZOJ 3343: 教主的魔法(分块+二分查找)
BZOJ 3343: 教主的魔法(分块+二分查找) 3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1172 Solved: ...
- anaconda安装python三方包,以tensorflow为例
Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切 ...