Сон в JQuery?

приветствия всех Я хочу, чтобы JQuery спал/дожидался секунды между двумя функциями

$('#div1').hide();
//sleep or wait or for a sec 
$("#div2").show();

как это сделать?

Ответы

Ответ 1

Для вашей конкретной функции .show() не поставлено в очередь, но есть простой трюк, чтобы сделать его поставленным в очередь, чтобы вы могли использовать .delay(), например:

$('#div1').hide();
$("#div2").delay(1000).show(0);

Давая ему аргумент продолжительности 0, теперь он мгновенно, но в очереди анимации. Под этим используется setTimeout(), так что это в основном такое же поведение, как:

$('#div1').hide();
setTimeout(function() { $("#div2").show(); }, 1000);

Ответ 2

Здесь ya go!

$('#div1').hide();
//sleep or wait or for a sec 
setTimeout('moomoo()', 1000);

function moomoo() {
  $("#div2").show();
}

Ответ 3

Следующее должно делать то, что вы хотите:

$("#div1").hide();
$("#div2").delay(1000).show(0);

Ответ 4

Вы не можете просто приостановить выполнение кода между вызовами. Это означало бы, что браузер не будет отображать изменения, вызванные вызовом hide, поскольку обновления не выполняются во время работы кода. Код просто ничего не сделал бы.

Используйте метод setTimeout для планирования кода, который будет выполнен позднее:

$('#div1').hide();
window.setTimeout(function(){
  $("#div2").show();
}, 1000);

Это установит элемент как скрытый и заплатит код, чтобы показать его, чтобы начать позже. Код будет продолжать после вызова setTimeout, чтобы функция могла выйти, и браузер возвращает элемент управления, чтобы он мог фактически скрыть элемент.

Ответ 5

Никакого реального сна, но это достигнет той же цели:

$('#div1').hide();
//sleep or wait or for a sec 
window.setTimeout(function() { $("#div2").show(); }, 1000);

Изменить: хорошо, теперь я исправляю "настоящий" сон, однако использование setTimeout по-прежнему является действительным решением "чистого JS" - вашим выбором.:)