您的位置:首页 > 其它

for循环里嵌套使用ajax遇到的问题

2013-03-19 10:35 537 查看
var fag = false;var array = new Array();
function onClick(event, treeId, node) {

var treeObj = $.fn.zTree.getZTreeObj("tree")
var nodes = treeObj.getNodes();

if(fag == false){
for(var m = 0 ; m < nodes.length;m++){
array[m]=nodes[m].name;
}
fag = true;
}
for(var h = 0 ; h < array.length; h++ ){

if(array[h]==node.name){
$.ajax({
type: "GET",
async: false,
url: "$link.getContextURL()/managerTest/listChildNodes?managerID="+node.id,
data:"",
success:function(data){
zNodes=new Array(data.length);
for(var i=0;i<data.length;i++){
zNodes[i]={ id:data[i].memberid, pId:node.id, name:data[i].membername};
}
var newNode = treeObj.addNodes(node, zNodes);
var a= array.splice(h,1);

// window.top.$.XYTipsWindow.removeBox();
}
});
}
}
}
这是正确的代码。ajax里必须加上async:false这句,不然的话,for循环的时间很短,而ajax会返回后台去执行操作,for循环都执行完了,ajax一遍还没出来返回页面,造成h的值很诡异。所以这两个一起使用的时候就不能异步传输,得使用同步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: