我很困惑。我试图通过循环访问数组并调用我编写的方法addModule()来将门户附加到页面。该方法按照正确的顺序被调用正确的次数(通过alert语句进行检查),但实际上只有一个或两个门户被填充。我有一种感觉,它与环和异步的东西,但它更容易与代码解释:问题与异步jQuery和循环
moduleList = [['weather','test'],['test']];
for(i in moduleList) { $('#content').append(''); for(j in moduleList[i]) { addModule(i,moduleList[i][j]); //column,name } }
function addModule(column,name) { alert('adding module ' + name); $.get('/modules/' + name.replace(' ','-') + '.php',function(data){ $('#'+column).append(data); }); }
主阵列中的每个阵列,我追加一个新列,因为这正是每个子阵列是 - 一列门户网站。然后我遍历该子数组,并在该列上调用addModule以及该模块的名称(该模块可正常工作)。在我的addModule方法中发生了一些错误,它只添加第一个和最后一个模块,或者有时候是中间模块,有时甚至没有模块......我很困惑!
不知道这是否有助于解决问题,但ID不应以数字开头。只有一封信。 – user113716 2010-06-13 14:47:41
我的理解是,你没有得到你的一些请求的回应。问题是你没有得到他们的顺序? – user113716 2010-06-13 15:15:09
如果问题仅仅是正确的顺序,那么我会建议你的'addModule()'函数为它所做的每个'.get()'请求在适当的列中创建一个枚举的''容器。然后当收到响应时,将结果追加到适当的“span”编号。我会看看我是否可以更新我的例子。 – user113716 2010-06-13 15:29:56