09.02.2010, 22:13
|
Аспирант
|
|
Регистрация: 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 так себя ведёт и как решить проблему?
|
|
09.02.2010, 22:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от YISHIMITSY
|
почему setTimeout так себя ведёт
|
Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);
|
|
09.02.2010, 23:12
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
Kolyaj,
|
|
10.02.2010, 08:58
|
Аспирант
|
|
Регистрация: 04.11.2008
Сообщений: 61
|
|
Сообщение от Kolyaj
|
Потому что не надо ему строку передавать.
setTimeout(insertText, 1000);
|
Так он к ней обращается, но при этом не делает задержку вообще. Хотя при этом alert срабатывал даже заключённый в ковычки...
Последний раз редактировалось YISHIMITSY, 10.02.2010 в 09:00.
|
|
10.02.2010, 09:26
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от YISHIMITSY
|
Так он к ней обращается, но при этом не делает задержку вообще.
|
А вы точно всё правильно переписали, никаких скобочек по своему разумению не добавили?
|
|
10.02.2010, 18:15
|
Аспирант
|
|
Регистрация: 04.11.2008
Сообщений: 61
|
|
Kolyaj, спасибо, я понял. Без круглых скобок работает как нужно) Но только не пойму, почему тогда срабатывал alert() когда там были скобки? И если потребуется передать параметры, как тогда быть?
|
|
10.02.2010, 18:17
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от YISHIMITSY
|
И если потребуется передать параметры, как тогда быть?
|
setTimeout(function() {
insertText(param);
}, 1000);
|
|
10.02.2010, 21:54
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от YISHIMITSY
|
И если потребуется передать параметры, как тогда быть?
|
setTimeout(insertText, 1000, params);
|
|
10.02.2010, 21:56
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от B~Vladi
|
setTimeout(insertText, 1000, params);
|
Ошибочное мнение. Работает только в MZ. Проверено на своем опыте.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|
10.02.2010, 22:08
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от PeaceCoder
|
Ошибочное мнение. Работает только в MZ. Проверено на своем опыте.
|
У меня работает везде
|
|
|
|