simshaun ответил на ваш немедленный вопрос, но я подозреваю, что у вас могут возникнуть вопросы относительно асинхронной природы вызова AJAX, т.е. arrayData
будет undefined
до тех пор, пока ответ не будет перезапущен с сервера ифункция успеха называется.
Все, что вы хотите сделать с arrayData
после вызова функции успеха, необходимо будет вызывать из функции успеха.Например,
var arrayData;
$.ajax({
type: "..",
url: "..",
data: ..,
success:function(data){
arrayData = jQuery.parseJSON(data);
doSomethingElse();
}
});
function doSomethingElse() {
/* do something else here with arrayData */
arrayData.doSomething();
}
Теперь мы можем удалить arrayData
в целом
$.ajax({
type: "..",
url: "..",
data: ..,
success:function(data){
doSomethingElse(jQuery.parseJSON(data));
}
});
function doSomethingElse(data) {
/* do something else here with the returned data */
data.doSomething();
}
На самом деле мы можем пойти еще дальше.Вся анонимная функция, которая присваивается свойству success, в действительности выполняет вызов doSomethingElse
, поэтому мы могли бы избавиться от этого и просто вызвать doSomethingElse
напрямую
$.ajax({
type: "..",
url: "..",
data: ..,
success: doSomethingElse
});
function doSomethingElse(data) {
/* do something else here with the returned data */
var arrayData = jQuery.parseJSON(data);
}
Это чище / яснее?