jsTree使用记录实例_javascript技巧

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> 

直接把测试项目中一段代码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
, jstree实例
jstree使用
jstree 实例、jstree 异步加载实例、jquery jstree 实例、jstree 动态加载实例、jstree jsondata实例,以便于您获取更多的相关知识。

时间: 2024-09-25 13:05:00

jsTree使用记录实例_javascript技巧的相关文章

jstree的简单实例_javascript技巧

最近使用到了jstree,感觉是一款灵活的.可多项定制的tree插件: 我这边使用过程记录下: 参考的jstree api网站,以及demo介绍: https://www.jstree.com/api/ jstree api github: https://github.com/vakata/jstree 使用中的例子介绍: html代码: <!-- 搜索框 --> <div class="search_input"> <input type="

JavaScript AOP编程实例_javascript技巧

本文实例讲述了JavaScript AOP编程.分享给大家供大家参考.具体如下: /* // aop({options}); // By: adamchow2326@yahoo.com.au // Version: 1.0 // Simple aspect oriented programming module // support Aspect before, after and around // usage: aop({ context: myObject, // scope contex

JavaScript之AOP编程实例_javascript技巧

本文实例讲述了JavaScript之AOP编程.分享给大家供大家参考.具体如下: /* // aop({options}); // By: adamchow2326@yahoo.com.au // Version: 1.0 // Simple aspect oriented programming module // support Aspect before, after and around // usage: aop({ context: myObject, // scope contex

JavaScript实现简洁的俄罗斯方块完整实例_javascript技巧

本文实例讲述了JavaScript实现简洁的俄罗斯方块.分享给大家供大家参考,具体如下: 先来看看运行效果图: 完整实例代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>俄罗斯方块</title> <style ty

javascript加减乘除的简单实例_javascript技巧

javascript加减乘除的简单实例 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> </head> <script language="javascript" type="text/javascript"> //除法函数 function accD

javascript实现抽奖程序的简单实例_javascript技巧

昨天开年会的时候看到一个段子说唯品会年会抽奖,结果大奖都被写抽奖程序的部门得了,CTO现场review代码. 简单想了一下抽奖程序的实现,花了十几分钟写了一下,主要用到的知识有数组添加删除,以及ES5 数组新增的indexOf,filter方法, 为了刷新页面后仍能保存已中奖记录,用了localStorage存盘. 刚开始是用随机数直接取编号,发现要剔除已中奖的人很麻烦,如果重复要递归调用,如果中奖的人太多到最后随机数取到已中奖的人概率太大,所以换用两个数组实现,一个记录已中奖的号码,一个记录未

javascript实现简单的鼠标拖动效果实例_javascript技巧

本文实例讲述了javascript实现简单的鼠标拖动效果.分享给大家供大家参考.具体分析如下: 用鼠标拖动一个元素,放到网页的任意一个位置上,这是很常见的,例如很多博客模板版块位置可以自己拖动到相应位置. 下面先写一个简单的可以实现鼠标拖动的效果. 当鼠标按下的时候,记录鼠标当前位置和元素左边距离的差值. 当鼠标移动的时候,给元素的位置赋值,就是鼠标的位置,减去刚才的差值. 当鼠标放开的时候,给鼠标移动和鼠标放开赋值null,让它们不要再有任何动作. 要点一: disx = oevent.cli

JS实现鼠标框选效果完整实例_javascript技巧

本文实例讲述了JS实现鼠标框选效果的方法.分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; char

JS模拟bootstrap下拉菜单效果实例_javascript技巧

本文实例讲述了JS模拟bootstrap下拉菜单效果.分享给大家供大家参考,具体如下: 模拟bootstrap下拉菜单 在工作中要切一个效果:点击导航栏,则出现下列菜单,但是当点击其他地方的时候,就隐藏子菜单,效果有点类似于bootstrap 的"下拉菜单" 由于bootstrap的子菜单的样式与设计不同,因此需要自己写一个类似的效果 当点击某个控件的时候,则显示出下拉菜单,但是,当点击空白的地方的时候怎么让其自动隐藏呢? 起初的想法,给body绑定一个onclick事件,当点击空白的