<body onload="sendRequest()">
<ul id="containerul">
</ul>
我sendRequest()是AJAX访问数据库,然后返回数据到ul标签里,数据也是ul和li标签组成的列表;但是我的一个JS函数 initiate()要操作这些ul和li标签来重新布局,但是好像initiate()在数据还没返回之前就加载完了,所以没有布局以后的效果,怎么样才能再数据全部返回以后再对那些ul和li标签再布局,或者根本就不能对AJAX返回的标签再去布局?在线等!!!!
------解决方案--------------------
标准做法就是:注册Ajax回调函数。
------解决方案--------------------
不要设置成异步加载的
------解决方案--------------------
ajax回调啊,success之后再调用你的initiate()函数
------解决方案--------------------
- JScript code
$.ajax({ type: "POST", url: "/CPSolution/allResourceAction.html", dataType:"html", data: {"menuNumber":index}, success: function(data){ initiate();// ajax提交返回成功之后调init方法 }, error:function(){ alert($("#content" + i)+"加载失败"); } });
------解决方案--------------------
$.post(url,参数, function (result,type) { ...处理你要做的事情...});
------解决方案--------------------
ajax回调
------解决方案--------------------
楼上都说的差不多,就是写一个回调函数,然后在回调函数中完成自己所要实现的代码。
如下:
- JScript code
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 + "】"); } } };
------解决方案--------------------
initiate()把这个方法放到ajax的回调函数里面处理