Как реализовать после того как сработает clearInterval(timer); после таймаута запустить функцию снова есть такой код но функция после таймаута не запускается какое решение можете предложить ? Код (Javascript): var timer = setInterval(countDown, 10); function countDown() { var time = parseInt( (date - new Date().getTime()) / 1000 ); if(--time < 0) { clearInterval(timer); (function testtimer() { rand = Math.floor(Math.random() * 86400 + 3600); trand = setTimeout(function () { $('.timer').text(rand); testtimer(); }, 200); })(); setTimeout(function () { clearTimeout(trand); timer = setInterval(countDown, 10); }, 10000); return; } };
@Khaybulla Через какой промежуток тебе надо запускать твою функцию? Например вот этот код через 10 секунд запустит функцию и будет ее повторять раз в 10 секунд: Код (Javascript): setInterval (function (){ test (); }, 10000); function test() { console.log('тест'); } Если тебе нужно чтобы внутри функции запускалась постоянно другая функция через какой то промежуток времени: Код (Javascript): setTimeout (function (){ test (); }, 10000); function test() { console.log('тест'); setInterval (function (){ timer (); }, 10000); } function timer(){ console.log('таймер запущен'); } И да, по поводу: 1 секунда равна 1000, имей ввиду. Твой код я бы написал как то так: Код (Javascript): setInterval (function (){ countDown(); }, 1000); function countDown() { var time = parseInt( (date - new Date().getTime()) / 1000 ); if(--time < 0) { testtimer(); } }; function testtimer() { rand = Math.floor(Math.random() * 86400 + 3600); $('.timer').html(rand); } $('.timer') и вместо этого используй айдишник лучше.
setInterval 10 поставил что бы таймер постоянно обновлялся на странице, не знаю правильно или нет но мне надо что бы отсчет таймера отображался на странице и после отсчета что бы запускался снова функция countDown я останавливаю функцию testtimer которая рандомно выдает секунды и после ее остановки мне нужно запустить функцию countDown заново
Лично я из этого текста не понял что ты хочешь, хоть точки бы ставил. Например вот, у тебя есть 2 функции, назовем их А и Б. Что ты хочешь что бы они делали, вот например объясни в таком виде: Код (Javascript): var i =0; function a (){ var rand = Math.floor(Math.random()*86400+3600); // хочу чтобы тут каждую секунду генерировалось какое то число //так же хочу чтобы через 10 секунд еще и выполнилась другая функция i++; if(i ==10){ b (rand); // передаем в функцию rand i = 0; }; } function b(rand){ $('.timer').html(rand); }; setInterval(a, 1000); // раз в секунду выполняется код в функции То есть в данном примере функция А выполняется каждую секунду, а функция Б раз в 10 секунд. Так вот на пальцах объясни чего конкретно ты хочешь)
Нужно что бы на экране был отсчет таймера 10 секунд после этого нужно что бы каждую секунду появлялись рандомные числа и через 10 секунд на выходящем числе остановилось и пошел опять таймер в 10 секунд и так по кругу. В данный момент у меня есть таймер 10 сек после него появляются рандомные числа каждую секунду и останавливается через 10 но по кругу пустить не получается... незнаю как обратно запустить функцию с самого начала.
Вот теперь понятно, можешь так написать.Хотя думаю можно и проще сделать. HTML: <div id="timer"></div> Код (Javascript): window.addEventListener('load', timer); function timer(){ var check = true, i = 0; setInterval(function() { if(check){ i++; $('#timer').html(i); if(i==10){ check = !check; i = 0; }; }; if(!check){ s++; var rand =Math.floor(Math.random()*86400+3600); $('#timer').html(rand); if(i==10){ check = true; i = 0; }; }; },1000); } </script>
Еще вопрос как можно сделать что бы подобный скрипт работал без перебойно а не после открытия страницы ? В данный момент у меня есть переменная с датой до которой идет отсчет таймера, какими способами можно реализовать что бы после того как таймер остановится начали выпадать рандомные числа вне зависимости открыта страница или нет ? Смотрел способ с cron но там как я понял нужно сразу указывать через какой промежуток будет запускаться скрипт, а если время таймера находится в переменной и постоянно меняется как быть ?
HTML: <divid="timer"></div> Код (Javascript): function timer(){ var time = new Date().getSeconds(); var html; if(time < 10 || time > 19 && time < 30 || time > 39 && time < 50){ html = time; //сделай так чтобы отображалась только 2ая цифра }else{ html = Math.floor(Math.random()*86400+3600); } $('#timer').html(html); setTimeout(timer, 1000); } timer(); Не помню как показать только 2ую цифру, погугли сам