varsetting={
view: {
selectedMulti:false},
edit: {
enable:true,
showRemoveBtn:false,
showRenameBtn:false},
data: {
keep: {
parent:true,
leaf:true},
simpleData: {
enable:true}
},
callback: {
beforeDrag: beforeDrag,
beforeRemove: beforeRemove,
beforeRename: beforeRename,
onRemove: onRemove
}
};varzNodes=[
{ id:1, pId:0, name:"节点1", open:false},
{ id:11, pId:1, name:"节点1-1"},
{ id:12, pId:1, name:"节点1-2"},
{ id:121, pId:12, name:"节点1-2-1"},
{ id:122, pId:12, name:"节点1-2-2"},
{ id:123, pId:12, name:"节点1-2-3"},
{ id:3, pId:0, name:"节点3", open:false},
{ id:31, pId:3, name:"节点3-1"},
{ id:32, pId:3, name:"节点3-2"},
{ id:33, pId:3, name:"节点3-3"}
];varlog, className= "dark";functionbeforeDrag(treeId, treeNodes) {return false;
}functionbeforeRemove(treeId, treeNode) {
className=(className=== "dark" ? "":"dark");
showLog("["+getTime()+"beforeRemove ]" +treeNode.name);
console.log()varchildren=treeNode.children;if(children!=undefined&&children.length>0){
alert("请先删除子节点");return false;
}returnconfirm("确认删除 节点 --" +treeNode.name+ "吗?");
}functiononRemove(e, treeId, treeNode) {
showLog("["+getTime()+"onRemove ]" +treeNode.name);
}functionbeforeRename(treeId, treeNode, newName) {if(newName.length== 0) {
alert("节点名称不能为空.");varzTree=$.fn.zTree.getZTreeObj("treeDemo");
setTimeout(function(){zTree.editName(treeNode)},10);return false;
}return true;
}functionshowLog(str) {if(!log) log=$("#log");
log.append("
"+str+"");if(log.children("li").length> 8) {log.get(0).removeChild(log.children("li")[0]);
}
}functiongetTime() {varnow= newDate(),
h=now.getHours(),
m=now.getMinutes(),
s=now.getSeconds(),
ms=now.getMilliseconds();return(h+":"+m+":"+s+ " " +ms);
}varnewCount= 1;functionadd(e) {varzTree=$.fn.zTree.getZTreeObj("treeDemo"),
isParent=e.data.isParent,
nodes=zTree.getSelectedNodes(),
treeNode=nodes[0];if(treeNode) {alert(1)
treeNode=zTree.addNodes(treeNode, {id:(100 +newCount), pId:treeNode.id, isParent:isParent, name:"new node" +(newCount++)});
}else{alert(2)
treeNode=zTree.addNodes(null, {id:(100 +newCount), pId:0, isParent:isParent, name:"new node" +(newCount++)});
}if(treeNode) {alert(3)
zTree.editName(treeNode[0]);
}else{alert(4)
alert("叶子节点被锁定,无法增加子节点");
}
};functionaddParent(e) {varzTree=$.fn.zTree.getZTreeObj("treeDemo"),
isParent=e.data.isParent,
nodes=zTree.getSelectedNodes(),
treeNode=nodes[0];
treeNode=zTree.addNodes(null, {id:(100 +newCount), pId:0, isParent:isParent, name:"new node" +(newCount++)});
zTree.editName(treeNode[0]);
};functionedit() {varzTree=$.fn.zTree.getZTreeObj("treeDemo"),
nodes=zTree.getSelectedNodes(),
treeNode=nodes[0];if(nodes.length== 0) {
alert("请先选择一个节点");return;
}
zTree.editName(treeNode);
};functionremove(e) {varzTree=$.fn.zTree.getZTreeObj("treeDemo"),
nodes=zTree.getSelectedNodes(),
treeNode=nodes[0];if(nodes.length== 0) {
alert("请先选择一个节点");return;
}varcallbackFlag=$("#callbackTrigger").attr("checked");
zTree.removeNode(treeNode, callbackFlag);
};functionclearChildren(e) {varzTree=$.fn.zTree.getZTreeObj("treeDemo"),
nodes=zTree.getSelectedNodes(),
treeNode=nodes[0];if(nodes.length== 0 || !nodes[0].isParent) {
alert("请先选择一个父节点");return;
}
zTree.removeChildNodes(treeNode);
};
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
$("#addParent").bind("click", {isParent:true}, addParent);
$("#addLeaf").bind("click", {isParent:false}, add);
$("#edit").bind("click", edit);
$("#remove").bind("click", remove);
$("#clearChildren").bind("click", clearChildren);
});
removeNode 方法是否触发 callback
[增加父节点]
[增加叶子节点]
[编辑名称 ]
[删除节点]
[清空子节点 ]