2012-06-06 3 views
0

Синтаксис здесь, поскольку код работает нормально. У меня есть цикл for и встроенная функция, которая должна запускаться внутри него (обратный вызов aQuery).Синтаксис Javascript: функция insideof a For loop

for (i=1;i <= 5;i++) 
      { 
      twitter[i] = $(this).find('twitter' + i).text(); 
      //$('<div class="twitter[i]"></div>').html(twitter[i]).appendTo('#link_'+i); 
      $('.twitter[i]').html(twitter[i]).appendTo('#link_'+i); 

      // grab from twitter 
      $.getJSON('http://api.twitter.com/1/users/show.json?screen_name='+twitter[i]+'&callback=?', 

      function (data)  
        { 
          for (j=1;j <= 5; j++)  { 
          twit_count[j] = data['followers_count'].toString(); 
          twit_count[j] = add_commas(twit_count[j]); 
          $('#twitter_count'+j).html(twit_count[j]); 
          } 
        }); 
      } 

Если i = 3, я хочу, чтобы j было одинаковым значением внутри функции.

Проблема заключается в том, что цикл j выполняется пять раз для каждого цикла i.

Переходя как аргумент

function (data, i) 

не работает, некоторые направления будут высоко оценены.

Спасибо,

+0

Если значение = 1, вы хотите J цикл, чтобы запустить один раз, два раза для I = 2, трижды для я = 3 .... Это то, что вам нужно? –

+0

да это ^^ как мне это сделать? –

+0

Затем просто замените для (j = 1; j <= 5; j ++) с for (j = 1; j <= i; j ++) –

ответ

0

Не 100% уверен, что вы хотите, но если вы хотите иметь функцию обратного вызова только сделать один набор счетчиков, он не должен иметь цикл в нем.

Чтобы получить значение j внутри обратного вызова с тем же значением, что и i, вам необходимо написать функцию для возврата функции обратного вызова и передать требуемое значение в качестве аргумента внешней функции.

$.getJSON(url, (function(j) { 
     return function(data) { 
      twit_count[j] = data['followers_count'].toString(); 
      twit_count[j] = add_commas(twit_count[j]); 
     $('#twitter_count'+j).html(twit_count[j]); 
     } 
    })(i)) 

Смотрите мой ответ here для более подробного объяснения.

0

Привет, ребята, просто чтобы ответить на мой собственный вопрос.

Мне нужен список подписчиков Facebook/Twitter на страницу.

var f_page = ["TheHouseofMarley, Another FB ID, Another FB ID, Another FB ID"]; 

    for(var i=0; i < 1; i++) 
        { 
         retrieveData(f_page[i]); 
        } 

    function retrieveData(teamName) { 

    var baseURL = 'http://graph.facebook.com/'; 
    $.getJSON(baseURL+teamName+"&callback=?", function(data) { 
    $('#FBlikes').append(teamname ":" data.likes) 
     }); 
    }; 

< Тогда в теле>

<span id='FBlikes'></span>