项目要求,需要向后台传递已经勾选的路径,如 l1-a, l1-l3-c,l1-l3-d;(如果是全选状态则只传递全选状态的路径,不传子节点)。

具体可以参考jQ  Ztree 的 v3.5 版本

Metro 风格的demo

 var mesetting = {
view: {
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom,
selectedMulti: true,
showIcon:true,
showLine:true,
dblClickExpand: false//禁用双击展开父节点功能
},
edit: {
enable: false,
showRemoveBtn: false,//设置删除按钮是否显示
showRenameBtn: false,//设置编辑按钮是否显示
drag: {//禁用拖拽
isCopy: false,
isMove: true
}
},
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: onClick,
onCheck: onCheck
}
};

主要描述onCheck :

 var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getCheckedNodes(true);
var oArr = [],nArr = [],oId;
$.each(nodes,function (index,item){
if (item.check_Child_State == 2 && !item.pId){
oArr.push(item); } if (item.check_Child_State == 2 && item.pId){
oId = item.id;
nArr.push(item);
} else if (item.check_Child_State == -1 && item.pId != oId){
nArr.push(item);
}
});

上面代码,oArr 取的是根节点的路径,nArr 取出的是根节点为半选状态的路径;

主要遇到一个坑就是下面要描述的 运用递归去 找出我要的路径结果:

 function getFilePath(treeNode){
if(treeNode==null)return "";
   var filename = treeNode.name;
   rootName = treeNode.name;
   var pNode = treeNode.getParentNode();    if(pNode!=null){
// oldName == '' ? path.push(pNode.name + ',' + filename) : path.push(pNode.name + ',' + oldName);
oldName == '' ? newName = pNode.name + ',' + filename : newName = pNode.name + ',' + oldName;
oldName = pNode.name + ',' + filename;
   filename = getFilePath(pNode);    }
path.push(newName);
  return filename,oldName = '',newName = '';
}

然后 发现这个path 是含有空的一个数组,希望大神能给看看上面情况。我处理的是对数组进行去空了操作

 //去除数组中的空值
function trimSpace(array){
for(var i = 0 ;i<array.length;i++)
{
if(array[i] == "" || typeof(array[i]) == "undefined")
{
array.splice(i,1);
i= i-1; }
}
return array;
}

以上仅代表个人在使用这个ztree中碰到多选构造路径遇到的麻烦。

Ztree 多选,显示勾选的路径的更多相关文章

  1. ztree点击文字勾选checkbox,radio实现方法

    ztree的复选框checkbok,单选框radio是用背景图片来模拟的,所以点击文字即使用label括起checkbox,radio文字一起,点击文字也是无法勾选checkbox. 要想点击ztre ...

  2. jquery,attr,prop,checkbox标签已有checked=checked但是不显示勾选

    最近在做项目的过程中碰到了这样的一个问题:在使用bootstrap模态框的过程中,在模态框中有一个checkbox标签,一开始是为选中的,当点击触发模态框按钮,选中chcekbox时,会显示勾选,这个 ...

  3. 解决jquery操作checkbox全选全不选无法勾选问题

    最近在学习中使用jquery操作checkbox,使用下面方法进行全选.反选:$("input[name='checkbox']").attr("checked" ...

  4. Angular/Vue多复选框勾选问题

    此页面效果以Angular实现,Vue也可按照其大致流程实现,其核心本质没有改变. 功能效果为:页面初始化效果为要有所有角色的复选框,要求初始化默认勾选的角色要显示勾选,之后,能按照最终勾选的状态提交 ...

  5. jquery checkbox勾选取消勾选的诡异问题

    jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type=&q ...

  6. Ztree加载完成后显示勾选节点

    ①前言:这个在度娘上没有搜到解决的办法,于是自己查看了ztree的API,发现其实还是比较简单的.做个笔记以备不时之需. ②需求: 像下图一样,在加载完成之后就显示需要勾选的项. ③解决方案: 首先页 ...

  7. ztree学习---将默认勾选的展开

    这里只给出前台页面上的代码,数据可以从后台获取,注意,在封装数据的时候,注意:Id(节点的id,可以是数字也可以是字符串) , pid(父亲节点的id) , name(节点名称)不能少 . html页 ...

  8. zTree 节点勾选取消勾选 选中取消选中

    zTreeObj.cancelSelectedNode function 举例 取消当前所有被选中节点的选中状态 var treeObj = $.fn.zTree.getZTreeObj(" ...

  9. jquery checkbox勾选/取消勾选的诡异问题

    <form> 你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br ...

随机推荐

  1. 基于ANDROID平台,U3D对蓝牙手柄键值的获取

    对于ANDROID平台,物理蓝牙手柄已被封装,上层应用不可见,也就是说对于上层应用,不区分蓝牙手柄还是其它手柄: 完成蓝牙手柄和ANDROID手机的蓝牙连接后,即可以UNITY3D中获取其键值: 在U ...

  2. (水题)洛谷 - P1022 - 计算器的改良

    https://www.luogu.org/problemnew/show/P1022 服了,居然还有+0.000和-0.000的不同,真的服了. #include<bits/stdc++.h& ...

  3. 793. Preimage Size of Factorial Zeroes Function

    Let f(x) be the number of zeroes at the end of x!. (Recall that x! = 1 * 2 * 3 * ... * x, and by con ...

  4. python 类对象和实例对象动态添加方法

    class Person(): def __init__(self, name): self.name = name def print_name(self): print(self.name) p ...

  5. python 高阶函数一 概念

    一.2个概念: 1.变量可以指向函数本身 >>> abs <built-in function abs> >>> f = abs >>> ...

  6. 公司内网,无法使用yum在线下载,肿么办?

    1 配置上网代理 编辑/etc/yum.conf,增加如下属性: proxy=你的代理地址 proxy_user=你的用户名 proxy_password=你的密码 2 配置国内163 yum源 备份 ...

  7. wordpress数据库结构及表说明

    数据表结构: wp_commentmeta:存储评论的元数据wp_comments:存储评论wp_links:存储友情链接(Blogroll)wp_options:存储WordPress系统选项和插件 ...

  8. iOS WKWebView 退出后停止播放音频/视频

    带有<video>或者<audio>标签的H5网页在播放音频视频时,退出webview后不会自动停止播放,手动处理一下. 1.注入使网页停止音频.视频播放的JS代码(Swift ...

  9. Eclipse - Maven项目Update Project后jdk版本变成1.5

    问题与分析 最近遇到个奇怪的问题,在Eclipse里对一个Maven项目进行Update Project(快捷键是 Alt+F5),原本jdk为1.8的项目忽然就变成了1.5,于是就报了一些错误. 我 ...

  10. qconshanghai2015

    http://2015.qconshanghai.com/schedule 大会日程 2015年10月15日 星期四 08:30 开场致辞   地点 光大宴会厅 专题 主题演讲 数据分析与移动开发工具 ...