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 相关文章推荐
ASP 过滤数组重复数据函数(加强版)
May 31 Javascript
通过url查找a元素并点击
Apr 09 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
Backbone.js框架中Model与Collection的使用实例
May 07 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
Dec 31 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
jQuery 筛选器简单操作示例
Oct 02 jQuery
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP生成条形图的方法
2014/12/10 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python如何操作mysql
2020/08/17 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
教师绩效工资方案
2014/02/01 职场文书
学生安全教育材料
2014/02/14 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
六年级作文之自救
2019/12/19 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫