jsTree使用记录实例


Posted in Javascript onDecember 01, 2016

1. ajax请求生成jsTree

[javascript] view plain copy
<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>

jsTree使用记录实例

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

2. jsTree change事件

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

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

3.jsTree自定义contextmenu

[javascript] view plain copy
<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自带的菜单,并自定义菜单

jsTree使用记录实例

以上就是本文的全部内容,希望对大家有所帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
accesskey 提交
Jun 26 Javascript
在html页面中包含共享页面的方法
Oct 24 Javascript
JS小功能(列表页面隔行变色)简单实现
Nov 28 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
Dec 12 Javascript
JavaScript SHA-256加密算法详细代码
Oct 06 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 Javascript
Vue.JS入门教程之列表渲染
Dec 01 #Javascript
Vue.JS入门教程之处理表单
Dec 01 #Javascript
利用js获取下拉框中所选的值
Dec 01 #Javascript
js微信扫描二维码登录网站技术原理
Dec 01 #Javascript
Bootstrap的class样式小结
Dec 01 #Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 #Javascript
AngularJS中的JSONP实例解析
Dec 01 #Javascript
You might like
PHP 面向对象 final类与final方法
2010/05/05 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
javascript this详细介绍
2016/09/19 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
深入了解NumPy 高级索引
2020/07/24 Python
犯错检讨书
2014/02/21 职场文书
初中生评语大全
2014/04/24 职场文书
暑期教师培训方案
2014/06/07 职场文书
会议欢迎词范文
2015/01/27 职场文书
名人传读书笔记
2015/06/26 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
python解析json数据
2022/04/29 Python
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python