jstree的简单用法
一般我们用jstree主要实现树的形成,并且夹杂的邮件增删重命名刷新的功能
下面是我在项目中的运用,采用的是异步加载
$('#sensor_ul').data('jstree', false).empty();//先销毁清空
function getSensors(){
$("#sensor_ul").jstree({
"core" : {
"animation" : 0,
"check_callback" : true,
"themes" : {
"theme" : "classic",
"dots" : true,
"icons" : true,
"stripes" : true
},
'data':{
'url':function(node){
if(node.id === '#'){//异步加载
return root+"/jsPlumb1/getDeviceTreeRoot";
}else{
return root+"/jsPlumb1/getDeviceTreeChild/"+node.id;
}
},
'data':function (node){
if(node.id === '#'){
return{
'id':node.id
}
}else{
return{
'id':node.original.id,
'a_attr':node.original.a_attr 自定义属性放在这里或者li_attr,让后台给你返回来
};
}
}
}
},
"types" : {
"#" : {
"max_children" : 1,
"max_depth" : 10000,
"valid_children" : []
},
"deviceTreeDatasource":{
"icon": "assets/tree/chart_organisation.png",
"valid_children" : ['deviceTreeDatapoint']
},
"deviceTreeDatapoint":{
"icon": "assets/tree/Electricity_Error.png",
"valid_children" : []
}
},
"checkbox" : {
"keep_selected_style" : false,
"real_checkboxes" : true
},
"plugins" : [
"state", "search", "types", "wholerow","checkbox","contextmenu","search"
],
"contextmenu": {
"items": {
"create": null,
"ccp": null,
"remove": {
"label": "删除设备",
"icon": "assets/tree/action_delete.gif",
"action": function(data) {
layer.open({
content: '确定要删除此设备?删除后不可恢复。'
,btn: ['是', '取消']
,resize:false
,yes: function(index, layero){
layer.close(index);
var ref = $('#sensor_ul').jstree(true);//获得整个树
nodeidArr = ref.get_selected(); //获得所有选中节点,返回值为数组
$.ajax({
async: true,
type: 'post',
url:root+"/VirtualPoint/deleteVirtualUnit",
dataType: 'json',
data: {
nodeidArr:nodeidArr
},
success: function(data) {
// alert(typeof data.names);
if(data.names == null){
jQuery("#sensor_ul").jstree("refresh");
layer.msg("删除设备成功!",{icon:1,time:1500});
}else{
layer.msg(data.names+"设备删除失败!",{icon:5,time:1500});
}
}
});
},btn2: function(index, layero){
//按钮【按钮二】的回调
layer.close(index);
//return false 开启该代码可禁止点击该按钮关闭
},cancel: function(){
//右上角关闭回调
layer.close();
//return false 开启该代码可禁止点击该按钮关闭
}
})
}
},
"rename": {
"label": "重命名设备",
"icon": " assets/tree/edit.gif",
"action":function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.edit(obj);
}
},
"refresh": {
"label": "刷新设备",
"icon": " assets/tree/arrow_refresh.png",
"action":function (data) {
jQuery("#sensor_ul").jstree("refresh");
}
},
}
}
});
$('#sensor_ul').on("rename_node.jstree",function(e,d){
var oldName = d.old;
var newName = d.text;
var nodeId = d.node.id;
var parentnodeId = d.node.parent;
var datapointId = d.node.a_attr.source;
$.ajax({
async: true,
type: 'post',
url:root+"/VirtualPoint/updateVirtualUnit",
dataType: 'json',
data: {
nodeId:nodeId,
datapointId:datapointId,
newName:newName
},
success: function(data) {
if(data.success == "1"){
layer.msg("重命名设备成功!",{icon:1,time:1500})
jQuery("#sensor_ul").jstree("#"+parentnodeId);
// jQuery("#sensor_ul").jstree("refresh");
}else if(data.success == "0_1"){
layer.msg("获取请求参数失败!",{icon:5,time:1500})
}else{
layer.msg("重命名失败!",{icon:5,time:1500})
}
}
});
});
$('#sensor_ul').on("after_open.jstree", function (e, data) { //节点被打开,并且动画加载完都显示
})
jstree的简单用法的更多相关文章
- jsTree 的简单用法--异步加载和刷新数据
首先这两个文件是必须要引用的,还有就是引用 jQuery 文件就不说了: <link href="/css/plugins/jsTree/style.min.css" rel ...
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
随机推荐
- [HAOI2010]软件安装
简单的tarjan+(本蒟蒻刚刚接触不久)恶心的树形DP 题面 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为 ...
- IDEA2017版本打可运行jar包并运行
一.打JAR包 JAR:From modules with dependencies 将依赖一起打包 一般依赖放在与xx.jar同级的libs文件夹中 敲黑板,下图第一个框是输出jar包的位置,第二 ...
- (python走过的坑)OpenCV中错误opencv-3.3.1\modules\highgui\src\window.cpp:339: error: (-215) size.width>0 && size.height>0 in function cv::imshow
第一次在python中使用OpenCV(cv2),运行时报错opencv-3.3.1\modules\highgui\src\window.cpp:339: error: (-215) size.wi ...
- lamp进阶
前言:上一文说到,在lamp上简单的部署应用程序,wordpress和phpmyadmin 稍稍回顾一下,动态页面apche发往后端类PHP程序,其PHP本身提供能与后端mysql进行交互的驱动,使得 ...
- js备战春招の四の严格模式
JavaScript 严格模式(strict mode)即在严格的条件下运行. use strict 严格模式下你不能使用未申明的变量 "use strict" 指令只运行出现在脚 ...
- java ssm框架实现分页功能 (oracle)
java web 实现分页功能 使用框架:ssm 数据库:oracle 话说 oracle 的分页查询比 mysql 复杂多了,在这里简单谈一下: 查询 前十条数据: SELECT * FROM( S ...
- IP地址与域名的关系
1.IP地址:IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信. 每台连网计算机都依靠IP地址来互相区分.相互联系 2.域名:由于IP地址是数字标识,使用时难以记忆和书写,因此在 ...
- 记kkpager分页控件的使用
kkpager支持异步加载分页: 1.页面添加div标签和引用JS,默认标签为<div id="kkpager"></div> 引用JS和样式 <sc ...
- python文件读read()、readline()、readlines()对比
读取文件的三个方法:read().readline().readlines().均可接受一个变量用以限制每次读取的数据量,但通常不使用.本章目的是分析和总结三种读取方式的使用方法和特点. 一.read ...
- 关于Oracle-SQL语句性能优化
Oracle-Sql语句性能优化 相信许多从事几年的开发人员都有过一些经验,相对于刚出来的毕业生而言,对于同种操作sql结果,他们的代码性能会更高一些.虽然本人还是个实习生,在这还是写写自己 ...