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 相关文章推荐
jquery URL参数判断,确定菜单样式
May 31 Javascript
用JS控制回车事件的代码
Feb 20 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
JavaScript动态添加css样式和script标签
Jul 19 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
BootStrap按钮标签及基本样式
Nov 23 Javascript
详解vue-cli官方脚手架配置
Jul 20 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
layui实现三级联动效果
Jul 26 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
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
解决GD中文乱码问题
2007/02/14 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python编程之event对象的用法实例分析
2017/03/23 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
django中的数据库迁移的实现
2020/03/16 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
自我推荐书
2013/12/04 职场文书
高一新生军训感言
2014/03/02 职场文书
服务理念口号
2014/06/11 职场文书
毕业生求职信范文
2014/06/29 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
在Python 中将类对象序列化为JSON
2022/04/06 Python