Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему не работает setTimeout(), или правильный синтаксис таймер-функции 
:(
    Опции темы
korob2001
Дата 18.11.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!!!
Ну вопрос собствено в названии темы. Вот код:
Код

<html>
 <head>
  <title>Обратный отсчёт</title>
   <script language="JavaScript" type="text/javascript" defer="true">
    <!--//
     function backTimer(sec,id) {
        if ( sec < 0 ) return;
        var element = document.getElementById(id);
        element.innerHTML = sec;
        sec--;
        setTimeout("backTimer("+sec+","+id+")", 1000);
    } 
    //-->
   </script>
 </head>
 <body onload="backTimer(10,'timer')">
    Вам осталось <span id="timer"></span> секунд.
 </body>
</html>

Спасибо. Если функция не принимает никаких параметров, то всё работает, но мне нужно с параметрами. Подскажите, что не так?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gregof
Дата 18.11.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 3.6.2004

Репутация: 1
Всего: 12



После вычислений строка:
Код

"backTimer(" + sec + "," + id + ")"
превращается в :
Код

backTimer(9, timer)
А тебе надо :
Код

backTimer(9, 'timer')
Следовательно меняем вызов setTimeout на
Код

setTimeout("backTimer(" + sec + ",'" + id + "')", 1000);
И все работает smile
Ещё можно реализовать так:
Код

setTimeout(function () {backTimer( sec, id)}, 1000);
В этом случае создается анонимная функция, с удалением которых(очисткой после них памяти) у IE замечены некоторые сложности. Что не слишком хорошо, но практически всегда не критично.
--------------------
Может поздно, может рано, нет у времени стоп-крана... (Чайф)
PM MAIL ICQ   Вверх
korob2001
Дата 18.11.2005, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Gregof - большое спасибо, всё работает.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.