问题情况::
$.post("<%=basePath%>cfgTBaseData/cfgTOrgAction_searchInfo.action",null,function(data){
alert(data);
zNodes = eval(data);
alert("ok");
alert(zNodes); //1
});
alert('ok1');
alert(setting);
alert(zNodes);//2
$.fn.zTree.init($("#ztree"),setting,zNodes);//需要显示的代码
当我把需要显示的代码放到这个位置,因为$.post() AJAX 是异步加载,当他执行$.post()的时候,不会等返回数据data从数据库取出值在执行下面的代码。而是直接执行下面的代码。所以就会出现//2位置ZNodes值取不到,所以$.fn.zTree.init($("#ztree"),setting,zNodes)动态树不会加载出来。
正确情况:
$.post("<%=basePath%>cfgTBaseData/cfgTOrgAction_searchInfo.action",null,function(data){
alert(data);
zNodes = eval(data);
alert("ok");
alert(zNodes); //1
$.fn.zTree.init($("#ztree"),setting,zNodes);//需要显示的代码
});
alert('ok1');
alert(setting);
alert(zNodes);//2
当把需要显示的代码放到这个位置,他会在data数据从数据库取出之后在执行。所以动态树会加载出来。