今天写web的代码卡在这里一个多小时,总结一下。
zTree的addNodes(parentNode, newNodes, isSilent)方法的参数说明太具迷惑性了。如图:
百思不得其解,只好找来用过这个插件的同事帮忙。
首先,这里的JSON,是JSON对象,不能是JSON串,在js里面,一个JSON串用type of 操作符得到的是“string”类型,而操作JSON对象,得到的则是一个“object”类型。这是本质区别。头两个参数的数据类型都不是JSON串,全部是JSON对象。第二,parentNode这个参数不是普通的JSON对象,必须是zTree对象的方法获取的zTree框架已经定制好的对象类型。这一点这个zTree的示例给的一点都不清楚,addNodes方法的两个添加示例的parentNode参数竟然都是null。。。。。。完全不考虑第一次用这个插件API用户的感受。
我写的添加节点的代码,仅供参考:
function ZtreeNode(id, pId, name) {//定义ztree的节点类
this.id = id;
this.pId = pId;
this.name = name;
}
var orgId = $(text).attr("data-tt-org-id"); var parentOrgId = $("input[name='jo.fid']").val();
var name = $("#groupName").val();
var childZNode = new ZtreeNode(orgId, parentOrgId, name); //构造子节点
var treeObj = $.fn.zTree.getZTreeObj("orgTree");//获取ztree对象
var parentZNode = treeObj.getNodeByParam("id", parentOrgId, null); //获取父节点
treeObj.addNodes(parentZNode, childZNode, true);