在3.0 Bate中,addNodes时候,JS报告对象不支持属性和方法,请赐教
ztree吧
全部回复
仅看楼主
level 1
citybugger 楼主
function nodeClick()
{
var zTreeObj=$.fn.zTree.getZTreeObj("DeptTree");
var selectNode=zTreeObj.getSelectedNodes();
var id=selectNode[0].id;
var zNodes=new Array();
$.ajax({
async : false,
cache:false,
type: 'GET',
dataType : "text/xml",
url: "http://localhost:8080/BSFRAME/selectdept.do?method=AsyncNode&id=" + id,//请求的action路径
error: function () {//请求失败处理函数
alert('请求失败');
},
success:function(data){ //请求成功后处理函数。
var nodes=dealData(data);
for(var i=0;i<nodes.length;i++)
{
var node="{\"id\":\"" +nodes[i].id + "\",\"pId\":\"" + nodes[i].superid + "\",\"name\":\"" + nodes[i].text + "\"}";
var obj=eval('(' + node + ')');
zNodes.push(obj);
}
}
});
alert("aaa");
zNodes=[{id:"12345",pId:"000002",text:"单位22"}];
newNodes=zTreeObj.addNodes(setting,selectNode[0],zNodes,true);
}
能运行到alert("aaa");,就是最后一句报错。
另有一个问题请教,通过点击一个节点来添加子节点,会不会每次点击都添加一遍?如何避免这种问题?
2011年12月04日 15点12分 1
level 11
1、关于报错:
你提供的代码不能完全分析出来错误原因,给你提供几个检查点,监控一下看看:
A、selectNode是否有结果,如果长度为零肯定会报错
B、逐一排查最后一行到底是哪个对象出现的错误
C、你在onclick中触发ajax,但是 addNodes 添加数据时ajax一般来说还没有执行完毕,当然如果你用了alert会造成延迟,从而感觉ajax已经执行完毕。 请注意!
2、关于添加子节点:
如果你是自己写逻辑,添加子节点,那么你必须要在添加子节点之前判断是否该子节点已经添加。 如果你用了zTree提供的异步加载功能,那么不会重复进行异步加载。 这个具体问题要看你的实际需求而定。
2011年12月05日 03点12分 2
1