Передайте дополнительный параметр функции обратного вызова jQuery getJSON ()

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

Мой код (немного упрощенный):

for (var i = 0; i < some_array.length; i++) {
    var title = some_array[i];
    $.getJSON('some.url/' + title, function(data) {
        do_something_with_data(data, i);
    }

Теперь, насколько я понимаю, эта анонимная функция будет вызываться только в том случае, если getJSON () имеет получил данные. Но к этому моменту i не имеет требуемого мне значения. Или, насколько я понимаю, он имеет последнее значение, которое могло бы иметь после завершения цикла (не должно ли оно выходить за границы?).

В результате, если бы массив имел размер 6, do_something_with_data () будет вызываться пять раз со значением 5.

Теперь я подумал: просто передайте i анонимной функции

function(data, i) { }

, но это кажется невозможным. i сейчас не определено.

21
задан ErikE 2 June 2011 в 20:39
поделиться