Как мне отложить вызов функции на 5 секунд?

Я хочу, чтобы widget.Rotator.rotate() задерживался на 5 секунд между вызовами ... как мне это сделать в jQuery ... похоже, что jQuery delay() не сработает для этого ...


person Webnet    schedule 19.01.2011    source источник
comment
Вы хотите, чтобы он автоматически вызывался с задержкой в ​​5 секунд между вызовами, или он будет вызываться в ответ на действие пользователя, и вы хотите убедиться, что он ждет не менее 5 секунд после последнего вызова перед повторным вызовом? В последнем случае должен ли пользователь ставить события в очередь или ввод игнорировать, если не прошло 5 секунд?   -  person Phrogz    schedule 19.01.2011
comment
Я понимаю, что это дубликат, но в 5 раз больше людей задаются этим вопросом из-за того, как составлен заголовок. Многие из нас ищут ключевое слово задержка, а не сон. И ответ тоже более общий. Так что, на мой взгляд, в данном случае этот вопрос более актуален, чем другие.   -  person ǝsʞǝꓕ ɐuɹɐꓭ    schedule 10.10.2018


Ответы (1)


Вы можете использовать простой javascript, он вызовет your_func один раз, через 5 секунд:

setTimeout(function() { your_func(); }, 5000);

Если ваша функция не имеет параметров и явного получателя, вы можете вызвать напрямую setTimeout(func, 5000)

Еще есть плагин, который я использовал однажды. У него есть oneTime и everyTime методы.

person BrunoLM    schedule 19.01.2011
comment
Если параметры функции отсутствуют, не нужно заключать function - это нормально: setTimeout(your_func, 5000); - person Oded; 19.01.2011
comment
@Oded Вы уверены, что Rotator.rotate() не требует установки приемника на Rotator? Если вы выполните то, что предлагаете, this будет окном. - person Phrogz; 19.01.2011
comment
@Phrogz - Я говорил о механике setTimout. - person Oded; 19.01.2011
comment
Я предлагаю вам изменить свой ответ, чтобы он сказал: Если ваша функция не имеет параметров и явного получателя, или что-то подобное, но сформулированное более понятным для начинающих программистов. - person Phrogz; 19.01.2011
comment
Кроме того, вы можете использовать clearTimeout (myTimer), чтобы остановить вызов функции, если вы используете myTimer = setTimeout (...) при первом вызове setTimeout. - person Vern Jensen; 08.08.2013
comment
Лучший способ использовать setTimeout (() = ›{your_func ()}, 5000); - person The Black Horse; 03.04.2020