Как остановить скрипт на девятый раз?
<script> function r2() { setInterval(function() { var chis_cyd = [] var res = Math.floor(Math.random() * 10) if (res == 0) { res += 1 } chis_cyd += res document.getElementById('text').value += chis_cyd }, 10) if (document.getElementById('text').value > 9) { r2() = false; } } </script> <input type='button' value='push' onclick='r2()'> <br> <textarea id='text'> </textarea> С кодом все в порядке...почти =)Мне нужно сгенерировать 9 чисел,но как вы понимаете генерируется бесконечное множество, как сделать так чтобы setInterval повторялся только 9 раз? |
function foo() { var i = 0; var time = 0; var time_limit = 10*1000; // 10 секунд var interval = 100; return function() { if (i++ < 25) { document.getElementById('foo').innerHTML = Math.random(); } else i = 0; if(time < time_limit) setTimeout(arguments.callee, interval); time+=interval; }(); } Он останавливает скрипт через 10 сек и выводит число на котором остановилось, а далее ,к сожалению, не знаю , по моему,надо сделать по такому: Остановилось, запомнить временно(если надо), опять пошёл скрипт, остановилось, запомнило временно(если надо) и так 9 раз ВНИМАНИЕ скрипт вырван из моего, поэтому в некоторых надо вставить то что соответствует твоей части |
Попробуй:
var interval = setInterval(function() { // Тут твой код }, 10); А в место строчки r2() = false; Поставь clearInterval(interval); |
можно
1 способ) изменить атрибут onclick 2 способ) Поставить условие на проверку тригера перед setInterval соответственно считать количество set interval и переключать тригер, или менять атрибут уж как хочеш. |
Пардон неверно понял задачу
Вот рабочее решение. <script> var r2=function() { var z=setInterval(function() { if (document.getElementById('text').value.length > 8){ clearInterval(z) } else { var chis_cyd = [] var res = Math.floor(Math.random() * 10) if (res == 0) { res += 1 } chis_cyd += res document.getElementById('text').value += chis_cyd } }, 10); } </script> <input type='button' value='push' onclick='r2()'> <br> <textarea id='text'> </textarea> |
спасибо,но я уже сам нашел проблему)Не знаю в том или не том ошибка была,но когда я поменял text на text1 то заработало =)
<script> function r2() { var inter = setInterval(function() { var chis_cyd = [] var res = Math.floor(Math.random() * 10) if (res == 0) { res += 1 } chis_cyd += res document.getElementById('text1').value += chis_cyd if(document.getElementById('text1').textLength == 9) { clearInterval(inter) } }, 10) } </script> <input type='button' value='push' onclick='r2()'> <br> <textarea id='text1'> </textarea> |
молодец !
Только второе нажатие на кнопку вызывает бесконечную работу. Наверное от того что во время 2го нажатия добавляется ещё один символ. Символов становится 10 и условие ==9 уже не исполняется. именно по этой причине в вышеприведённом примере. в условии остановки стоит > а не = а чтобы при нажатии на кнопочку не добавлялось по одной циферке добавление циферок не происходит если количество символов больше 9. |
да мне это не важно,мне надо один раз генерировать 9 чисел,а потом хоть что с ними делай
|
Часовой пояс GMT +3, время: 01:51. |