Проблема с setTimeout
Здравствуйте. Есть код
< p></ p> var s; var el; var timeoutId; var pos = 0; var s1 = "пример выполнения скрипта"; el = document.getElementsByTagName('p'); s = '['; function writeP(posChar) { //alert(posChar + ' ' + s1.length); if (posChar < s1.length) { if (s1.charAt(posChar) == ' ') { s += '<br>'; } s += s1.charAt(posChar); } else { clearTimeout(timeoutId); alert('finish'); return; } timeoutId = setTimeout('writeP(++pos)', 500); el[0].innerHTML = s; } writeP(pos); el[0].innerHTML += ']'; Функция writeP выводит строку в блок абзаца, но следующая за её вызовом строка кода (последняя строка) не выполняется. Что неправильно? |
Цитата:
Поставь остановку перед 26-й строкой и увидишь, что все там есть... <p></p> <script type="text/javascript"> var s; var el; var timeoutId; var pos = 0; var s1 = "пример выполнения скрипта"; el = document.getElementsByTagName('p'); s = '['; function writeP(posChar) { //alert(posChar + ' ' + s1.length); if (posChar < s1.length) { if (s1.charAt(posChar) == ' ') { s += '<br>'; } s += s1.charAt(posChar); } else { clearTimeout(timeoutId); alert('finish'); return; } timeoutId = setTimeout('writeP(++pos)', 500); alert(s) el[0].innerHTML = s; } writeP(pos); el[0].innerHTML += ']'; </script> Т.ч. меняй алгоритм |
Имеется ввиду 28 строка
|
kdlinny, ты мой пример запускал? Что получается на экране по шагам смотрел?
|
kdlinny,
строка 28 исполнится после первого шага функции writeP - браузеру же надо чем-то заниматся пока таймер тикает, на втором шаге writeP сотрёт всё что делала строка 28 |
Спасибо. Всё получилось.
|
Часовой пояс GMT +3, время: 08:34. |