请不要再多给节点添加 click 事件了,完全没有必要,只会影响性能。 zTree 是以节点数据为核心,并且提供了自己的 onClick 回调,而且 zTree 的所有回调都会返回 节点数据 json 对象,通过 json 对象你可以随意取得自定义的任何属性。 例如: 你自定义了 A属性, 在节点 “aa 内, 那么节点aa 的数据可能为: {name:aa, id:1, pId:-1, A:test} 那么在任何回调中得到的 treeNode 数据就是这个 json 对象的clone,获取A 只需要: treeNode.A 另外,你也可以利用 调试工具 console.log 打印 treeNode ,就可以看到了。
对于zTree树控件,节点的默认提示信息title是节点的name,也就是默认显示节点的名称。你认真了解zTree,不难发现主要是key值在作祟:
view sourceprint?。
1.var setting = {。
2.data: {
3.key: {
4.title: "s"//这里的s表示节点内的s属性。
5.},
这里的key内的title默认指向的就是name属性,或者为空,为空的时候也会默认为name属性。
针对这位朋友的问题,其实方法很多:
1、在后台构造属性
在ajax页面内从数据库拿到数据list过后通过new的形式给最终返回的json对象构造一个属性t出来。然后修改setting内key的title指向属性值为t即可。
返回的json对象数据为:
view sourceprint?。
1.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?。
1.var setting = {。
2.data: {
3.key: {
4.title: "t"//这里的s表示节点内的s属性。
5.},
2、动态修改树节点的属性
当前台给zTree树对象赋值结束后获取所有树节点,然后逐个更新树节点的属性值,示例代码如下所示:
view sourceprint?。
01.$(document).ready(function () {。
02.$.fn.zTree.init($("#treeDemo"), setting, zNodes);。
03.//获取树对象
04.var treeObj = $.fn.zTree.getZTreeObj("treeDemo");。
05.//拿到所有树节点
06.var nodes = treeObj.getNodes();。
07.//for循环逐个修改树节点属性。
08.for(var i = 0;i<nodes.length;i++)。
09.{
10.nodes[i].t = "可以自定义排序";。
11.//更新节点
12.treeObj.updataNode(nodes[i]);。
13.}
14.});
当前如果只是修改部分节点可以在for内加以控制,如果是只更新指定节点可以通过getNodeByParam("属性名称","值",父节点对象)找到指定对象,形如:
view sourceprint?。
1.//给节点追加属性
2.var treeObj = $.fn.zTree.getZTreeObj("treeDemo");。
3.var node = treeObj.getNodeByParam("id", 1, null);。
4.node.s = "可以自定义排序";。
5.treeObj.updateNode(node);。
每个节点都具备以下属性:
id:节点ID,对加载远程数据很重要。
text:显示节点文本。
state:节点状态,'open' 或 。
'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。
checked:表示该节点是否被选中。
attributes: 被添加到节点的自定义属性。
children: 一个节点数组声明了若干节点。
设置一下state属性就可以了。
elementui中tree判断一二级的方法如下:
1、设置node-key属性,每个树节点用来作为唯一标识的属性,整棵树是唯一的。
2、设置default-expanded-keys属性,默认展开的节点的key的数组。
TreeView控件。TreeView控件的Nodes属性表示为TreeView控件指定的树节点集,而树节点集中的每个树节点对象可包括它本身的树节点集,在树节点集中Add、Remove和RemoveAt方法使开发人员可添加和移动集中的单个树节点。
原文地址:http://www.qianchusai.com/ngtree%E6%A0%91%E8%8A%82%E7%82%B9%E5%B1%9E%E6%80%A7.html