function onClick(e, treeId, treeNode) {
if (treeNode.isParent) //如果不是叶子结点,结束
return;
alert(treeNode.name); //获取当前结点上的相关属性数据,执行相关逻辑
};
2.2 节点复选框事件
一般情况下我们会直接使用treeObj.getCheckedNodes(true);获取所有选中的节点,然后遍历所有选中的节点进行相关操作,当面对大数据量时,这种操作方法便不可取,可通过getChangeCheckedNodes()方法获取勾选状态被改变的节点集合,值针对状态改变的节点做相应处理。
function onCheck() {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo"); //获取树对象
var nodes = treeObj.getChangeCheckedNodes(); //获取勾选状态改变的节点
var designIds = [];
var status = 0; //定义初始勾选状态为未勾选
if (nodes[0].checked)
status = 1; //如果状态改变节点为勾选状态,说明当前操作是从未勾选变为已勾选。
$.each(nodes, function (i, item) {
designIds.push(item.id); //将状态改变的节点id输出到数组
item.checkedOld = item.checked; //这句话很关键,将节点的初始状态置为当前状态。否则每次勾选操作获取状态改变节点时只会跟树初始化的状态相比较。
})
$.ajax({
type: "Post",
url: "/Design/GetRelationComponentIdsByDesigns",
data: { "designIds": designIds },
success: function (data) {
RealBimOcx.BatchAddSubClrInfoBegin();
$.each(data.result, function (i, item) {
if (status == 1) //这里根据发生改变的节点是勾选还是为勾选进行相关逻辑操作。
RealBimOcx.AddSubClrInfo(item, 255, 255, 0);
else
RealBimOcx.AddSubClrInfo(item, 0, 255, 0);
if (i % 100 == 0) {
RealBimOcx.BatchAddSubClrInfoEnd();
RealBimOcx.BatchAddSubClrInfoBegin();
} })
RealBimOcx.BatchAddSubClrInfoEnd();
}
})
};
2.3 实现zTree的右键增删改操作
首先定义右键弹出面板
<div id="rMenu" style="z-index:100;">
<ul>
<li id="m_add" onclick="addTreeNode();">新增节点</li>
<li id="m_del" onclick="removeTreeNode();">删除节点</li>
<li id="m_edit" onclick="editTreeNode();" style="border-bottom:1px solid #cecece">编辑节点</li><li id="m_left">升级</li>
<li id="m_right">降级</li>
<li id="m_up">上移</li>
<li id="m_down" style="border-bottom:1px solid #cecece">下移</li>
<li id="m_reset" onclick="resetTree();">重置节点</li> <li id="m_open" onclick="treeOpen()">展开所有</li>










