Показать сообщение отдельно
  #2 (permalink)  
Старый 19.06.2012, 17:17
Новичок на форуме
Отправить личное сообщение для Sanya_Zol Посмотреть профиль Найти все сообщения от Sanya_Zol
 
Регистрация: 19.06.2012
Сообщений: 3

Сообщение от SDHP Посмотреть сообщение
Совсем недавно начал изучать аякс и вот напоролся на такую шнягу :\

С помощью $.ajax я отправил запрос.
Получил данные data
Как вытащить их за пределы запроса?
function(data)
{
var text = data;
}
alert(text);

alert() выдаёт, что переменная не определена [undefined]

var внутри функции создает локальную перменную
сделать её глобальной можно, убрав var
function(data){text = data;}

не смотря на то, что в случае отсутствия var создается глобальная переменная, чтобы исключить совпадение с локальными переменными функций/замыкания можно явно указать, что переменная - глобальная (является свойством window)
function(data){window.text = data;}


учти, что если ты делаешь запрос через $.ajax (который по умолчанию асинхронный), то код ниже продолжит выполняться до его завершения

$.ajax({
...
success:function(data){window.text=data;}
});
alert(window.text); // неверно! выведет undefined
Ответить с цитированием