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 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
javascript数组去掉重复
May 12 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
几种经典排序算法的JS实现方法
Mar 25 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
提高Web性能的前端优化技巧总结
Feb 27 Javascript
微信小程序 引入es6 promise
Apr 12 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
seajs下require书写约定实例分析
May 16 Javascript
vue.js实现二级菜单效果
Oct 19 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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画图实例
2014/11/05 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
jQuery知识点整理
2015/01/30 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Python实现统计代码行的方法分析
2017/07/12 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
教育课题研究自我鉴定范文
2013/12/28 职场文书
民事和解协议书格式
2014/11/29 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python