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 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
JQuery页面地址处理插件jqURL详解
May 03 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 Javascript
再谈javascript注入 黑客必备!
Sep 14 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
js实现显示手机号码效果
Mar 09 Javascript
VUE 3D轮播图封装实现方法
Jul 03 Javascript
用vuex写了一个购物车H5页面的示例代码
Dec 04 Javascript
6行代码实现微信小程序页面返回顶部效果
Dec 28 Javascript
浅析vue插槽和作用域插槽的理解
Apr 22 Javascript
20道JS原理题助你面试一臂之力(必看)
Jul 22 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之第八天
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
javascript通过class来获取元素实现代码
2013/02/20 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python3实现购物车功能
2018/04/18 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python Merge函数原理及用法解析
2020/09/16 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
社区文化建设方案
2014/05/02 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers