Я не могу заставить этот .delay
метод работать в jQuery:
$.delay(3000); // not working
$(queue).delay(3000); // not working
Я использую цикл while, чтобы дождаться, пока неконтролируемое изменяющееся значение не станет больше или равным другому, и я не могу найти способ вызвать выполнение в течение X секунд.
Ответы:
$ .delay используется для задержки анимации в очереди, а не для остановки выполнения.
Вместо использования цикла while вам нужно рекурсивно вызвать метод, который выполняет проверку каждую секунду, используя
setTimeout
:источник
setTimeout()
.Вы также можете просто отложить некоторые операции следующим образом:
источник
ES6 setTimeout
Изменить: 204586560000 мс - приблизительное время между исходным вопросом и этим ответом ... при условии, что я правильно рассчитал.
источник
delay
Функция jQuery предназначена для использования с эффектами и очередями эффектов, см.delay
документацию и пример в ней:Если вы хотите наблюдать за изменениями переменной, вы можете сделать что-то вроде
источник
JavaScript
setTimeout
- очень хорошее решение:delay
Функция JQuery в основном используется для задержки анимации в очереди анимации JQuery.источник
delay()
не останавливает поток кода, а затем повторно запускает его. В JavaScript нет практического способа сделать это. Все должно быть сделано с помощью функций, которые принимают обратные вызовы, оsetTimeout
которых упоминали другие.Цель jQuery
delay()
- заставить очередь анимации ждать перед выполнением. Так, например$(element).delay(3000).fadeIn(250);
, заставит элемент исчезнуть через 3 секунды.источник
Только javascript Работает без jQuery
источник
Javascript - это асинхронный язык программирования, поэтому вы не можете остановить выполнение на какое-то время; единственный способ [псевдо] остановить выполнение - использовать setTimeout (), который не является задержкой, а является «отложенным обратным вызовом функции».
источник
Если вы используете функции ES6 и используете асинхронную функцию, вы можете эффективно остановить выполнение кода на определенное время с помощью этой функции:
Вот как вы его используете:
Он остановится на запрошенное количество миллисекунд, но только если вы используете асинхронную функцию . Пример ниже:
источник