Я сталкиваюсь с этой досадной проблемой со связыванием правильного значения с правой строкой в моем HTML-списке, который я отображаю. Думаю, объяснение моего кода было бы лучшим способом объяснить, поэтому здесь я иду.
У меня есть строка json, которая возвращает данные о нескольких игроках из базы данных.У игроков может быть несколько записей.
Моя строка имеет вид
jsonVar = {"someStr":[{"Fbid":"xxxxxxxxx","score":"xxxxxx","game":"x","date":"1300689902"}, .... }]
Теперь я хочу отобразить данные в виде списка в HTML для всех столбцов.
createList = function()
{
arrayLength = jsonVar.someStr.length;
for(i=0;i<arrayLength;i++)
{
listName = document.id('name');
listScore = document.id('score');
listGameMode = document.id('gamemode');
listTime = document.id('time');
listfbID= document.id('fbID');
fbId = jsonVar.someStr[i].Fbid;
FB.api('/'+fbId+'/', function(response)
{
new Element('li',{text: response.first_name +" "+response.middle_name+" "+response.last_name }).inject(listName, 'bottom');
});
new Element('li',{text:jsonVar.someStr[i].Fbid}).inject(listfbID, 'bottom');
new Element('li',{text: jsonVar.someStr[i].score}).inject(listScore, 'bottom');
new Element('li',{text:jsonVar.someStr[i].gamemode}).inject(listGameMode, 'bottom');
new Element('li',{text: jsonVar.someStr[i].date}).inject(listTime, 'bottom');
}
}
Проблема была бы в том, что имя неправильно возвращалось с остальными записями в списке, это, я полагаю, связано с некоторой задержкой с возвратом имени из fb.