
获取 id 为 tree 的 zTree 对象
var treeObj = $fnzTreegetZTreeObj("tree");
获取全部节点数据
var treeObj = $fnzTreegetZTreeObj("tree");
var nodes = treeObjgetNodes();
for(var i=0;i<nodeslength;i++){
alert(nodes[i]id); //获取每个节点的id
}
获取当前被勾选的节点集合
var treeObj = $fnzTreegetZTreeObj("tree");
var nodes = treeObjgetCheckedNodes(true);
for(var i=0;i<nodeslength;i++){
alert(nodes[i]id); //获取每个节点的id
}
获取当前被选中的节点数据集合
var treeObj = $fnzTreegetZTreeObj("tree");
var nodes = treeObjgetSelectedNodes();
for(var i=0;i<nodeslength;i++){
alert(nodes[i]id); //获取每个节点的id
}
对于zTree树控件,节点的默认提示信息title是节点的name,也就是默认显示节点的名称。你认真了解zTree,不难发现主要是key值在作祟:
view sourceprint
var setting = {
2data: {
3key: {
4title: "s"//这里的s表示节点内的s属性
5},
这里的key内的title默认指向的就是name属性,或者为空,为空的时候也会默认为name属性。
针对这位朋友的问题,其实方法很多:
1、在后台构造属性
在ajax页面内从数据库拿到数据list过后通过new的形式给最终返回的json对象构造一个属性t出来。然后修改setting内key的title指向属性值为t即可。
返回的json对象数据为:
view sourceprint
var zNodes =[
2{ id:1, pId:0, name:"节点搜索演示 1", t:"节点提示信息1", open:true},
3{ id:11, pId:1, name:"关键字可以是名字", t:"节点提示信息2"},
4{ id:12, pId:1, name:"关键字可以是level", t:"节点提示信息3"}
5];
修改setting内对应的key值
view sourceprint
var setting = {
2data: {
3key: {
4title: "t"//这里的s表示节点内的s属性
5},
2、动态修改树节点的属性
当前台给zTree树对象赋值结束后获取所有树节点,然后逐个更新树节点的属性值,示例代码如下所示:
view sourceprint
01$(document)ready(function () {
02$fnzTreeinit($("#treeDemo"), setting, zNodes);
03//获取树对象
04var treeObj = $fnzTreegetZTreeObj("treeDemo");
05//拿到所有树节点
06var nodes = treeObjgetNodes();
07//for循环逐个修改树节点属性
08for(var i = 0;i<nodeslength;i++)
09{
10nodes[i]t = "可以自定义排序";
11//更新节点
12treeObjupdataNode(nodes[i]);
13}
14});
当前如果只是修改部分节点可以在for内加以控制,如果是只更新指定节点可以通过getNodeByParam("属性名称","值",父节点对象)找到指定对象,形如:
view sourceprint
//给节点追加属性
2var treeObj = $fnzTreegetZTreeObj("treeDemo");
3var node = treeObjgetNodeByParam("id", 1, null);
4nodes = "可以自定义排序";
5treeObjupdateNode(node);
记录项目中关于ztree插件的使用。
实现的功能有:排序、迁移、搜索、删除、右键菜单、重命名、新增。
这里是由于项目需要不同人员的权限不同,右键菜单选项不同;如果你也有这种需求,我觉得这里有两种实现方式,一是像这里写的,点击右键时去后代判断,根据判断结果再去显示;二是在获取树的信息的时候,把判断所需要的必要参数直接放在json里一块返回来,这样前台只需要直接判断就行了。
实现的效果是:输入框内只要有输入变化,就会执行一次搜索方法
火狐有一个bug,就是假如树中含有一个名字为“haha”的节点和名字为“哈哈”的节点,这时你用中文输入法去打“哈”这个字,发现只能输入英文。。扯远了,当然这个可以不做。重点是搜索方法。
其实获取到含有搜索关键字的所有节点很简单,ztree已经封装好了,就是getNodesByParamFuzzy()。
但是,想要的效果是,执行下一次搜索时,要把上一次搜索展开的节点全都关闭,再去展开这种的符合条件的节点。
按道理讲,也很简单,调用expandAll(false)就可以将节点都关闭,然后再去展开符合条件的节点就行了。
但是这样写了以后,发现上次搜索展开的节点并不会全部关闭,而是有的关闭了,有的还是展开的。
在网上搜了很久,在ztree的github项目的issue中找到了一点线索,说展开和关闭都是有动画的。
我想可能是前面的关闭所有节点还没有执行完,与后面的展开节点冲突了。
于是就去api里找,发现有expandSpeed这个参数设置,将动画关闭,这个bug竟然好了。
具体的关于dom的内部原理我不了解。
这里实现的效果是:鼠标移动到某个节点上时,节点后面会出现一个图标,点击图标,实现something
ztree 父节点的子节点全部被选中时会选中父节点是因为没有插入新的父节点。使子节点全选中时不关联到父节点步骤如下:
1、首先第一步就是进行在新建思维导图中,右击点击“编辑节点”,修改名称即可。
2、接着就是进行点击“插入”,点击“新的父节点”。
3、然后就是进行右击,点击“编辑节点”,输入名称,如下图所示。
4、最后就是进行点击“插入”,点击“新的父节点”,点击左边的子节点,点击“插入”,点击“新的父节点”即可。
以上就是关于ztree v3怎么获取php数据全部的内容,包括:ztree v3怎么获取php数据、怎么得到ztree的style title内容、ztree树的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)