ztree添加节点后不能动态显示
ztree吧
全部回复
仅看楼主
level 4
<extend name="Public:base"/>
<block name="script">
<link rel="stylesheet" href="__PUBLIC__/zTree/zTreeStyle.css">
<link rel="stylesheet" href="__CSS__/admin_menu.css">
<style>
.ztree li span.button.icon01_ico_docu,
.ztree li span.button.icon01_ico_close{
margin-right:2px; background: url(__IMG__/i_close.png) no-repeat scroll 0 0 transparent;
vertical-align:top;
*vertical-align:middle;
}
.ztree li span.button.icon01_ico_open{
margin-right:2px; background: url(__IMG__/i_open.png) no-repeat scroll 0 0 transparent;
vertical-align:top;
*vertical-align:middle;
}
</style>
<script src="__PUBLIC__/zTree/jquery.ztree.all-3.5.min.js"></script>
<script>
var setting = {
view: {
selectedMulti: false
},
edit: {
enable: true,
showRemoveBtn: false,
showRenameBtn: false
},
data: {
keep: {
parent:true,
leaf:true
},
simpleData: {
enable: true,
idKey : "id",
pIdKey : "pid",
rootPId: 0
}
}
};
var zNodes ={$tree};
function add(e) {
$('.add').css("display","block");
}
$(document).ready(function(){
$.fn.zTree.init($("#tree"), setting, zNodes);
$("#addLeaf").bind("click", {isParent:false}, add);
$("#addParent").bind("click", {isParent:true}, add);
$("#remove").bind("click", remove);
$(".add h2 span").click(function(){
$('.add').css("display","none");
});
$("input[name='add']").click(function(){
$('.add').css("display","none");
var zTree = $.fn.zTree.getZTreeObj("tree"),
nodes = zTree.getSelectedNodes(),
treeNode = nodes[0];
//有父节点
if(treeNode){
//alert('treeNode1='+treeNode);
$.post(
'{:U(GROUP_NAME."/Tools/admin_menu_add")}',
{
"id":treeNode.id,
"name":$("input[name='name']").val(),
"url":$("input[name='url']").val()
},
function (d) {
if(d.res==1){
alert("treeNode1="+treeNode);
alert("zTree="+zTree);
alert('d.id='+d.id+' d.pid='+d.pid+' d.name='+d.name);
treeNode=zTree.addNodes(treeNode,{id:d.id,pid:d.pid,isParent:'true',name:d.name});
alert("treeNode2="+treeNode);//此处输出为空
}
else
alert(d)
}
);
//没有父节点
}else{
$.post(
'{:U(GROUP_NAME."/Tools/admin_menu_add")}',
{
"id":null,
"name":$("input[name='name']").val(),
"url":$("input[name='url']").val()
},
function (d) {
if(d.res==1){
treeNode=zTree.addNodes(null, {id:d.id, pid:d.pid, isParent:true, name:d.name});
alert(treeNode);
}
else
alert(d)
}
);
}
});
});
</script>
</block>
<block name="alert">
<div class="alert add" style="display: none;">
<h2>添加父节点 <span></span></h2>
<ul class="form">
<li><span class="w100">名字:</span><input name="name" type="text" /></li>
<li><span class="w100">链接:</span><input name="url" type="text" /></li>
<li><span class="w100"> </span><input class="w150" name="add" type="submit" id="register_button" value="注册"></li>
</ul>
</div>
</block>
<block name="content">
<div id="fix">
<ul>
<li class="action"><a id="addParent" onclick="return false;" href="#">增加父节点</a></li>
<li class="action"><a id="addLeaf" onclick="return false;" href="#">新增子节点</a></li>
<li class="action"><a id="remove" onclick="return false;" href="#">删除</a></li>
</ul>
</div>
<div class="zTreeDemoBackground left">
<ul id="tree" class="ztree"></ul>
</div>
</block>
用的php+ajax动态添加数据,第一次添加都没问题,刷新后下面没有子节点的根添加子节点后
treeNode=zTree.addNodes(treeNode,{id:d.id,pid:d.pid,isParent:'true',name:d.name});
alert("treeNode2="+treeNode);//此处输出为空
zTree.addNodes就无效了,是怎么回事
2014年03月11日 08点03分 1
level 11
addNodes 返回的是 Array ,请仔细看看 API
2014年03月15日 06点03分 2
那么此处该如何写呢?demo里面也是这么写的啊,请指教,感谢
2014年03月15日 10点03分
回复 独林木 : 即使 demo 里面直接用 treeNode 获取这个值,你也要看看后面是如何使用这个 treeNode 的呀。 PS: 如果是Array 的话,当然获取节点就从 Array 中获取元素就是了
2014年03月24日 05点03分
1