Без АЛЕРТА переменную не видать...
Получаю в запросе данные, которые могут быть пустые. Если запрос ничо не вернул, то картинку скрываю. Если вернул, то картинку хотелось бы показать... а оно, гадство, без алерта ничо не показывает...
есть картинка: <img id="myReminder" src="images/Reminder.png" onclick="функция()"/> Есть запрос, который, гад, работает: function showReminder(){ var reminder_id; // КУДА ТОЛЬКО ЭТУ ПЕРЕМЕННУЮ НЕ СОВАЛ.... $.post( "user_actions.php", { user_id: user_id, dataType: 'xml' }, function(responseXML){ $(responseXML).find("actions").each(function() { reminder_id=$(this).find('id').text(); } // alert('show_rem='+show_rem); // если есть АЛЕРТ ТО КАРТИНКА ПОКАЗЫВАЕТСЯ!!! if(reminder_id>0){ $('#myReminder').css({'display': ''}); }else{ $('#myReminder').css({'display': 'none'}); } } |
скорей всего ты делаешь запрос, ответ с сервера не успев придти выполняется ваш код
когда вы делайте алерт, то выполнение кода останавливается на этой точке и ответ успевает придти и получается, что переменная уже изменила свое значение. после нажатия на "ок" в алерте, код разумеется показывает вам правильный ответ. |
skrudjmakdak,
да, вполне вероятно. Но, прошу тогда подсказать, как быть? Но скрипт, где обрабатывается запрос отрабатывает и заполняет диалоговую форму. Просто я не стал весь длинноватый скрипт сюда всовывать. |
Кстати, в алерете показывается неверное значение! :help:
|
сам аякс вроде как правильно оформлен, посмотри в отладчике, что тебе сервер отдает.
открой хром->F12->Network->Сделай аякс запрос внизу добавится строчка с запросом, нажми на нее, справа появится окошко в нем будет: headers, preview, response, cookies, timing. открой response и скажи то тебе вернул сервер или нет? |
Дык, я ж полученные от сервера данные впихиваю в другой DIV и там все они есть!
То есть с сервера приходит все нормально. |
так я не понял. ответ найден нет? еще при отладке можешь использовать точки останова, почитай тут. очень помогает находить ошибки:
http://learn.javascript.ru/debugging-chrome |
skrudjmakdak, увы, ответ не найден...
Есть "алерт" - всё работает. Нету - хрен-с-два! |
погоди, я что то не понял. у тебя кавычки вообще криво расставлены. либо ты код сюда правленный кинул или еще что то. вот смотри:
$(responseXML).find("actions").each(function() { reminder_id=$(this).find('id').text(); }//вот это быть не может, здесь должна быть закрывающая скобка ); // alert('show_rem='+show_rem); // если есть АЛЕРТ ТО КАРТИНКА ПОКАЗЫВАЕТСЯ!!! if(reminder_id>0){ |
skrudjmakdak, да, вы правильно сказали - когда убирал ненужное из примера видимо скобку убрал.
Но на странице работает. С алертом. Зараза :-E |
Часовой пояс GMT +3, время: 19:36. |