Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2011, 09:21
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

изменение переменной в функции
День добрый
Вот при изменении примитивной переменной в функции, для функции создается копия переменной и изменяется именно она, а при работе с объектом - из функции уже доступ по указателю.
По крайней мере в примерах так...
Но вот у меня что-то не получается :(
var dat = new Object();
        dat.result = {a:"str"};
        $.post("image2.php",{},function(data){
            dat.result = eval(data);
            alert(dat.result.strannie033);
        },'json');
        alert(dat.result.a);

переменная dat не изменяется...

Подскажите, как можно в моем случае [(B]return[/b] та делать некуда) быть?
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2011, 09:30
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

ananax,
а вы смотрели что в data приходит?
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2011, 09:32
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

да, да...
в дата все есть.
алерт внутри функции все хорошо показывает... нужное свойство объекта есть.
а вот во внешней dat только старый объект, которым, типа, инициализировал...
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2011, 09:48
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

dat.result = eval('(' + data + ')');

так попробуйте
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2011, 10:07
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

в общем, вот
да бред какой-то...
в FF 3 не работает
в FF 4b все работает как надо
d хроме не работает
в IE 6 все работает...
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2011, 10:17
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

Нагнал!!!!
В FF работает только если я оставляю alert()
Если его убрать, все перестает работать
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2011, 10:29
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

значит что-то ты не правильно сделал, где-то переменную пытаешься получить ещё до того как пришёл ответ.
__________________
.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2011, 10:47
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

Ладно... хорошо...

Подскажите, тогда, пожалуйста, как мне вернуть data как строку из этой функции?
Она выполняется, если jQuery.post получил данные и закончил их чтение.
внутри функции я все данные вижу и могу их вывести и тд.
А вот вынести их оттуда не могу не умею
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2011, 10:47
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

в общем, засада :(
Ладно... хорошо...

Подскажите, тогда, пожалуйста, как мне вернуть data как строку из этой функции?
Она выполняется, если jQuery.post получил данные и закончил их чтение.
внутри функции я все данные вижу и могу их вывести и тд.
А вот вынести их оттуда не могу не умею
Ответить с цитированием
  #10 (permalink)  
Старый 12.01.2011, 10:52
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

$.post("image2.php",{},function(data){
            dat.result = eval(data);
            alert(dat.result.strannie033);
        },'json');

тут то всё правильно, data будет содержать ответ, вот только видимо есть у вас места где вы пытаетесь получить dat.result да вот только не своевременно это. Могу и ошибаться
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение имени и выполнение функции в цикле infocean Общие вопросы Javascript 6 03.12.2010 18:11
максимальная длина переменной для js функции progger Общие вопросы Javascript 5 06.09.2010 15:14
Изменение и отображение значения переменной по клику Allan Stark Общие вопросы Javascript 1 25.04.2010 15:50
изменение текущего контекста функции vkovalev jQuery 13 16.03.2009 12:52
изменение переменной Ilja_ORDY Общие вопросы Javascript 3 09.09.2008 18:56