for循环内执行ajax出现异步加载问题

问题的解决方式是添加$(function(i){}(i),如下所示:

  api.ajax({
        url: areaListUrl,
        method: 'post',
        data: {
            values: {
                cid:aid
            }
        }
    }, function(ret, err) {
        // alert(JSON.stringify(ret));
        if(ret.status == 1){
          if(ret.result){
            var html = '';
            for(var i = 0;i < ret.result.length;i++){
              // html += '
  • '+ret.result[i].name+'
  • ' $(function(i){ api.ajax({ url: areaListUrl, method: 'post', data: { values: { cid:ret.result[i].cid } } }, function(ret2, err2) { // console.log(JSON.stringify(ret2)); if(ret2.status == 1){ html = '
  • '+ret.result[i].name+'
  • ' }else if(ret2.status == 0){ html = '
  • '+ret.result[i].name+'
  • ' } $('.homeaddress ul').append(html); }); }(i)) } } } });

    你可能感兴趣的:(问题及解决方法)