Как остановить скрипт на девятый раз?
<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, время: 16:52. |