Обращение к глобальной переменной из jQuery
Добрый день.
Имеется следующий код: $(function (){ var abc; $.ajax({'url': './filename', 'type': 'GET', 'dataType': 'json', 'cache': false, success: function (data) { abc = data.x; }}); alert (abc); }); Объявляем переменную abc, при помощи $.ajax() получаем данные, присваиваем переменной abc новое значение, но оно не сохраняется. Подскажите, пожалуйста, что нужно сделать, чтобы присвоить новое значение переменной abc? |
$(function (){ var abc; $.ajax({'url': './filename', 'type': 'GET', 'dataType': 'json', 'cache': false, success: function (data) { abc = data.x; alert (abc); }}); }); На момент вызова алерта запрос ещё не выполнен и новое значение не получено. |
Нет. В Вашем примере алерт показывает правильное значение, запрос выполнен и данные получены.
|
Цитата:
А в моём всё правильно. |
Так, я понял. Весь код, который следует после $.ajax(...), выполняется сразу же, не дожидаясь завершения запроса.
А как этого можно избежать? Мне нужно сначала получить данные, и уже потом продолжать с ними работу. |
Все действия осуществлять в callback'-е запроса. Этого всегда достаточно. Если у Вас не получается, значит, неправильный подход.
Хотя есть вариант сделать синхронный запрос (выставить async: false), но тогда браузер подвиснет до того момента, пока не будет получен ответ. |
Хорошо. Все понятно.
Спасибо за помощь. |
Часовой пояс GMT +3, время: 16:56. |