Снятие затемнения с экрана при получении ответа от php срипта с помощью setInterval
Задача.
Всплывающее затемнение организованно функцией showPopup(). она работает безотказно. Делает плавное всплытие полупрозрачного черного экрана и дива с предупреждением. Смысл сего действия в блокировке действий пользователя на время действия функции. При загрузке документа стартует корявая функция с запросом ajax к php скрипту который возвращает либо 1 либо 0. (Скрипт считывает из базы данных запиь и решает что возвращать.) Эта функция при ответе 0 вызывает затемнение, иначе - не вызывает (глупо звучит, конечно) . function getEnd(){ $.ajax({ url: 'generateOtvet.php', type: "POST", success: function(html){ if (html == 0) { showPopup() } }, Error: function(){ alert("error"); }, cache: false }); } В чем собсно вопрос. Чтобы эта канитель работала постоянно (дабы словить изменение в php скрипте), функция вызывается с помощью $(document).ready(function(){ setInterval(getEnd, 1000);//и потом через каждую секунду. }); В результате имеется замечательный эффект дергающегося экрана. А нужно, чтобы экран был все время, а только в случае изменений в базе пропадал. Что предпринималось. Пробовал делать так чтобы при старте полюбому загружался экран, а в случае возвращения php сриптом 1 он удалялся. делал так: В специальный блок втыкал html с запуском функции для затемнения. var hide = "<script>$(document).ready(function(){showPopup();});</script>"; $("#specialDiv").html(hide); а при получении 1 от пхп скрипта пытался убить эту же запись var hide = ""; $("#specialDiv").html(hide);, но не тут-то было. Ничего не удаляется. И вот что интересно. Поэкспериментировав очень удивился. Оказывается запись типа var hide = "Text1"; $("#specialDiv").html(hide); [JS]var hide = "Text2"; $("#specialDiv").html(hide); выводит в блоке div с id ="specialDiv" "Text2", а запись var hide = "<script>$(document).ready(function(){showPopup();});</script>"; $("#specialDiv").html(hide); var hide = "Text1"; $("#specialDiv").html(hide); [JS]var hide = "Text2"; $("#specialDiv").html(hide); Выводит в том же блоке "Text2" да к тому же еще и затемнение экрана. не понятно. В общем, из всего выше сказанного можно сделать вывод, что я в jquery как и в javascript полный ноль. Так оно и есть. Но несмотря на это, подскажите пожалуйста по существу. То что я ничего хорошего накодить не могу это мне известно. Просто, пожалуйста, помогите решить задачу. К тому же она довольно интересна. Всем кто откликнется заранее спасибо. |
Часовой пояс GMT +3, время: 16:58. |