AJAX异步取值问题

来源:互联网 发布:网络电视连不上wifi 编辑:程序博客网 时间:2024/06/05 09:36

问题情况::

$.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数据从数据库取出之后在执行。所以动态树会加载出来。

 

 

 

原创粉丝点击