Нужно чтобы после создания 100-го элемента setInterval выключался. Можно ли это сделать без создания дополнительных переменных, типа такого:
var timerId = setInterval(function() < alert( «work» ); >, 2000);
Уже все перепробовал, но никак не выходит. Вот код:
function foo() < var field = document.getElementById(‘field’); var count = 1; //счетчик function addElem() < var div = document.createElement(‘div’); div.classList.add(‘block’); div.innerHTML = count; field.appendChild(div); count += 1; >setInterval(addElem, 20); >
#field < width: 500px; height: 500px; border: 3px solid; margin-top: 10px; >.block
Create
Отслеживать
14.5k 6 6 золотых знаков 33 33 серебряных знака 68 68 бронзовых знаков
задан 8 июл 2019 в 18:03
Владислав Коробков Владислав Коробков
344 1 1 золотой знак 5 5 серебряных знаков 16 16 бронзовых знаков
Чтобы сбросить таймер, установленный через setInterval , надо знать id этого таймера. Для этого его надо где-то запомнить.
Без переменной это сделать затруднительно.
Как обмануть счетчик электроэнергии? Новые умные приборы учёта, как они работают?
8 июл 2019 в 18:09
Почему вы не попытались погуглить, прочитать в документации, в учебнике посмотреть?
8 июл 2019 в 18:11
8 июл 2019 в 18:18
8 июл 2019 в 18:20
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
Нет, нельзя. Нужна переменная.
document.querySelector(‘button’).addEventListener(‘click’, function (e) < var i = 0 function tick() < if (++i === 10) clearInterval(t) document.body.textContent = i >var t = setInterval(tick, 1000) tick() >)
Click me
Отслеживать
ответ дан 8 июл 2019 в 18:11
121k 24 24 золотых знака 121 121 серебряный знак 293 293 бронзовых знака
Нет ничего плохого в объявлении дополнительных переменных.
Но если очень хочется, то можно совсем без объявлений, на замыканиях — правда через setTimeout, а не setInterval, т.к. чтобы остановить setInterval вам нужно знать его id.
function interval(count, timeout, callback) < if (count === 0) return; callback() setTimeout(() =>interval(count — 1, timeout, callback), timeout) > interval(10, 100, () => console.log(‘your code’))
Ваш пример без переменной для setInterval
function foo() < var field = document.getElementById(‘field’); var count = 1; //счетчик function addElem()< var div = document.createElement(‘div’); div.classList.add(‘block’); div.innerHTML=count; field.appendChild(div); count += 1; if (count < 100) < setTimeout(addElem, 20); >> addElem() >
Источник: ru.stackoverflow.com
Как остановить счетчик в программе
Может, если будет известно, для чего это надо сделать, то появится и больше вариантов, как это сделать.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? — Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда —> R269634919062
Как остановить электросчетчик, 4 основных способа
Регистрация: 09.04.2010
Сообщений: 6
Учебная программа каждые 10 секунд меняется вопрос
Нужно задерживать вопросы на более большой промежуток времени.
Последний раз редактировалось cvv1337; 29.11.2011 в 20:49 .
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
хех.
вот не понимаю я такого.
люди тратят уйму времени, сил и ресурсов головного мозга на то, чтобы каким-то образом обмануть тестирующую программу, при том, что просто выучить предмет, по которому проходит тестирование обошлось бы, скорее всего, с меньшими затратами.
кроме того, подумай сам — ну, обманешь ты программу, ну будешь думать по полминуты на вопросе. ты думаешь, препод этого не заметит? того, что тестирование шло не 16 с половиной минут (1000 секунд) а 50?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? — Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда —> R269634919062
Источник: www.programmersforum.ru
Как остановить счетчик в программе
Страница заблокирована по требованию Роскомнадзора или из-за нарушения правил хостинга!
Вы владелец сайта?
Информация о причинах блокировки была выслана на Ваш контактный E-mail.
Также Вы можете связаться с нашей службой технической поддержки с помощью раздела «Помощь и поддержка» в панели управления хостингом или любым удобным для Вас способом.
Тех. поддержка
Россия: +7 (800) 700-06-08
Украина: +380 (800) 802-192
Тех. поддержка:
Бухгалтерия:
Руководство:
+7 (800) 700-06-08 +7 (812) 3854136 +7 (495) 721-80-88 +380 (800) 802-192 +380 (44) 300-02-18
The page has been blocked by request of the Federal Supervision Agency for Information Technologies and Communications, or for violating the web hosting rules.
Are you the website maintainer?
A letter concerning circumstances of this has been sent to your contact email automatically.
You can also get in touch with out support team using your Control Panel «Help and Support» section or in any other convenient way.
Источник: lestnitsygid.ru