Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2010, 22:13
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Добавление текста с задержкой
Здравствуйте! Есть код:

<html>
 <head>
  <title>Пример скрипта</title>

  <script type="text/javascript" language="javascript">
  
    function animateText(usertext)
    {
     var elem = document.getElementById('text');
     function insertText()
     {
      elem.innerText = usertext;
      elem.textContent = usertext;
     }
     setTimeout('insertText()', 1000);
    }

  </script> 

  <style type="text/css">

   #text { border: 1px solid #000;
           padding: 2px;
           width: 200px;
           height: 50px;
           font: 12px Verdana;
         }

  </style>
 </head>
 <body>
  
  <button onclick="animateText('Мой текст...')">Кликни</button> <p />

  <div id="text"> </div>

 </body>
</html>


В строке 15 вызываю функцию insertText() с задержкой на 1 секунду, но при клике ничего не происходит( Причём если подставить вместо неё алерт, он сработает как нужно, и без задержки insertText() тоже работает как нужно... почему setTimeout так себя ведёт и как решить проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2010, 22:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от YISHIMITSY
почему setTimeout так себя ведёт
Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2010, 23:12
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Kolyaj,
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2010, 08:58
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Сообщение от Kolyaj Посмотреть сообщение
Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);
Так он к ней обращается, но при этом не делает задержку вообще. Хотя при этом alert срабатывал даже заключённый в ковычки...

Последний раз редактировалось YISHIMITSY, 10.02.2010 в 09:00.
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2010, 09:26
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от YISHIMITSY
Так он к ней обращается, но при этом не делает задержку вообще.
А вы точно всё правильно переписали, никаких скобочек по своему разумению не добавили?
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2010, 18:15
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Kolyaj, спасибо, я понял. Без круглых скобок работает как нужно) Но только не пойму, почему тогда срабатывал alert() когда там были скобки? И если потребуется передать параметры, как тогда быть?
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2010, 18:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от YISHIMITSY
И если потребуется передать параметры, как тогда быть?
setTimeout(function() {
    insertText(param);
}, 1000);
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2010, 21:54
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от YISHIMITSY
И если потребуется передать параметры, как тогда быть?
setTimeout(insertText, 1000, params);
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2010, 21:56
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от B~Vladi
setTimeout(insertText, 1000, params);
Ошибочное мнение. Работает только в MZ. Проверено на своем опыте.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #10 (permalink)  
Старый 10.02.2010, 22:08
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от PeaceCoder
Ошибочное мнение. Работает только в MZ. Проверено на своем опыте.
У меня работает везде
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль ввода текста в форму Derack Events/DOM/Window 11 09.01.2011 01:07
добавление текста в елемент COKOJIOB Общие вопросы Javascript 18 24.10.2009 18:16
цвет кнопки, цвет текста на кнопке, всплывающее окно matana Общие вопросы Javascript 8 26.05.2009 17:08
Оборачивание текста в теги <b>, <i> и т.д. bizmak Элементы интерфейса 4 23.01.2009 05:01
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02