<body onload="sendRequest()">
<ul id="containerul">
</ul>
我sendRequest()是AJAX访问数据库,然后返回数据到ul标签里,数据也是ul和li标签组成的列表;但是我的一个JS函数 initiate()要操作这些ul和li标签来重新布局,但是好像initiate()在数据还没返回之前就加载完了,所以没有布局以后的效果,怎么样才能再数据全部返回以后再对那些ul和li标签再布局,或者根本就不能对AJAX返回的标签再去布局?在线等!!!!

解决方案 »

  1.   

    标准做法就是:注册Ajax回调函数。
      

  2.   

    ajax回调啊,success之后再调用你的initiate()函数
      

  3.   


    $.ajax({
    type: "POST",
    url: "/CPSolution/allResourceAction.html",
    dataType:"html",
    data: {"menuNumber":index},
    success: function(data){
    initiate();// ajax提交返回成功之后调init方法
    },
    error:function(){
    alert($("#content" + i)+"加载失败");
    }
    });
      

  4.   

     
     $.post(url,参数, function (result,type) { ...处理你要做的事情...});  
      

  5.   

    楼上都说的差不多,就是写一个回调函数,然后在回调函数中完成自己所要实现的代码。
    如下: xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState == 4){
    if(xmlHttp.status == 200){
    if(trim(xmlHttp.responseText) != ""){
    document.getElementById("spanClientId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "<font>";
    }else{
    document.getElementById("spanClientId").innerHTML = "";
    }
    }else{
    alert("请求失败,错误码=【" + xmlHttp.status + "】");
    }
    }
    };
      

  6.   

    initiate()把这个方法放到ajax的回调函数里面处理
      

  7.   

    coolhty没错,我就是那样做的,追加一个问题,比如说A.jsp页面触发的AJAX的SEND()函数,数据可以返回到别的页面如B.jsp处理吗?不再返回到A.jsp,这样是不是违反了AJAX的处理原理?