Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавление текста с задержкой (https://javascript.ru/forum/dom-window/7598-dobavlenie-teksta-s-zaderzhkojj.html)

YISHIMITSY 09.02.2010 22:13

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

<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 так себя ведёт и как решить проблему?

Kolyaj 09.02.2010 22:42

Цитата:

Сообщение от YISHIMITSY
почему setTimeout так себя ведёт

Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);

JsLoveR 09.02.2010 23:12

Kolyaj,
:yes:

YISHIMITSY 10.02.2010 08:58

Цитата:

Сообщение от Kolyaj (Сообщение 44256)
Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);

Так он к ней обращается, но при этом не делает задержку вообще. Хотя при этом alert срабатывал даже заключённый в ковычки...

Kolyaj 10.02.2010 09:26

Цитата:

Сообщение от YISHIMITSY
Так он к ней обращается, но при этом не делает задержку вообще.

А вы точно всё правильно переписали, никаких скобочек по своему разумению не добавили?

YISHIMITSY 10.02.2010 18:15

Kolyaj, спасибо, я понял. Без круглых скобок работает как нужно) Но только не пойму, почему тогда срабатывал alert() когда там были скобки? И если потребуется передать параметры, как тогда быть?

Kolyaj 10.02.2010 18:17

Цитата:

Сообщение от YISHIMITSY
И если потребуется передать параметры, как тогда быть?

setTimeout(function() {
    insertText(param);
}, 1000);

B~Vladi 10.02.2010 21:54

Цитата:

Сообщение от YISHIMITSY
И если потребуется передать параметры, как тогда быть?

setTimeout(insertText, 1000, params);

PeaceCoder 10.02.2010 21:56

Цитата:

Сообщение от B~Vladi
setTimeout(insertText, 1000, params);

Ошибочное мнение. Работает только в MZ. Проверено на своем опыте.

B~Vladi 10.02.2010 22:08

Цитата:

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

У меня работает везде:)


Часовой пояс GMT +3, время: 18:22.