Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2013, 10:37   #1
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
Радость Картинка показывается один раз

Приветствую, коллеги. Делаю на досуге ajax-кнопочку "Подписаться на канал" а-ля ю-туб. Нарисовал кнопку и описал стили для состояния "подписаться" и "отписаться". Но возникла одна трабла в следующем коде:
PHP код:
<?php
include("../scripts/lib.php");
if (isset(
$_POST['sub'])){
echo 
"<script>
if (parent.document.getElementById('sub').className=='sub') {
parent.document.getElementById('sub').style.display='none';
parent.document.getElementById('loader').src='../../images/ajax-loader.gif';
function sub() { 
    parent.document.getElementById('sub').style.display='block';
    parent.document.getElementById('sub').className = 'subOK';
    parent.document.getElementById('sub').title = 'Отменить подписку';
    parent.document.getElementById('loader').style.display='none';
}
setInterval(sub, 1000); // использовать функцию
} else if (parent.document.getElementById('sub').className=='subOK') {
parent.document.getElementById('sub').style.display='none';
parent.document.getElementById('loader').src='../../images/ajax-loader.gif';
function subOK() {
    parent.document.getElementById('sub').style.display='block';
    parent.document.getElementById('sub').className = 'sub';
    parent.document.getElementById('sub').title = 'Оформить подписку';
    parent.document.getElementById('loader').style.display='none';
}
setInterval(subOK, 1000); // использовать функцию
}
</script>"
;
subscribe($_POST['source'],$_POST['dest']);
exit;
}
?>
Как видите, между моментом, когда вид кнопки и состояние меняется, загружается файл ajax-loader.gif' для пущей наглядности что якобы скрипт "думает" Так вот, этот гиф показывается только ОДИН раз после нажатия на кнопку. Если во второй раз нажать на кнопку, она (т.е. вид кнопки) меняется без показа ajax-loader.gif
В ЧЁМ ПРОБЛЕМА?
Che Guevara вне форума Ответить с цитированием
Старый 30.10.2013, 23:57   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Не понял, зачем вы используете функцию setInterval?
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 31.10.2013, 14:02   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Потому что она скрывается и нигде не показывается.
Чем отличаются функции sub и subOK? чем ваще отличается код в ветвлении?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 31.10.2013, 23:20   #4
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Потому что она скрывается и нигде не показывается.
Всё равно не понял. Или это не ко мне относилось?
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 01.11.2013, 11:56   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Всё равно не понял. Или это не ко мне относилось?
топик-стартеру
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменяется (innerText) один раз Серёж HTML и CSS 1 22.01.2012 13:27
каптча. показывается неверная картинка xDyPx PHP 7 17.05.2011 20:46
Форма один раз Dop Общие вопросы Delphi 11 16.07.2009 21:41
Выполнить действие один раз. IVANSour Общие вопросы Delphi 5 02.02.2009 22:01
Событие один раз Михаил Юрьевич Общие вопросы Delphi 4 01.04.2008 20:40