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中的load方法装载IE缓存中文件的方法
Sep 11 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
angularjs封装bootstrap时间插件datetimepicker
Jun 20 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
js上下视差滚动简单实现代码
Mar 07 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
利用vue开发一个所谓的数独方法实例
Dec 21 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
详解angular部署到iis出现404解决方案
Aug 14 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
python操作日期和时间的方法
2014/03/11 Python
Python脚本实现代码行数统计代码分享
2015/03/10 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
python 获取字符串MD5值方法
2018/05/29 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
教师师德反思材料
2014/02/15 职场文书
母亲节演讲稿
2014/05/27 职场文书
通信工程求职信
2014/07/16 职场文书
七一建党节演讲稿
2014/09/11 职场文书
股指期货心得体会
2014/09/13 职场文书
交通事故代理词范文
2015/05/23 职场文书
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python