Без АЛЕРТА переменную не видать...
Получаю в запросе данные, которые могут быть пустые. Если запрос ничо не вернул, то картинку скрываю. Если вернул, то картинку хотелось бы показать... а оно, гадство, без алерта ничо не показывает...
есть картинка: <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, время: 16:45. |