Wait() или sleep() в jquery?
Я хочу добавить класс, подождать 2 секунды и добавить еще один класс.
.addClass("load").wait(2sec).addClass("done");
Есть ли способ?
Ответы
Ответ 1
setTimeout выполнит некоторый код после задержки некоторого периода времени (измеряется в миллисекундах). Однако важно отметить: из-за характера javascript остальная часть кода продолжает работать после установки таймера:
$('#someid').addClass("load");
setTimeout(function(){
$('#someid').addClass("done");
}, 2000);
// Any code here will execute immediately after the 'load' class is added to the element.
Ответ 2
Это будет .delay()
.
http://api.jquery.com/delay/
Если вы делаете AJAX-материал tho, вам действительно не следует просто писать "done", вы должны действительно ждать ответа и посмотреть, действительно ли это сделано.
Ответ 3
Поймите, что это старый вопрос, но я написал плагин для решения этой проблемы, который может оказаться полезным.
https://github.com/madbook/jquery.wait
позволяет сделать это:
$('#myElement').addClass('load').wait(2000).addClass('done');
Ответ 4
delay() не будет выполнять задание. Проблема с задержкой() является частью системы анимации и применяется только к очередям анимации.
Что делать, если вы хотите подождать до выполнения чего-то вне анимации?
Используйте это:
window.setTimeout(function(){
// do whatever you want to do
}, 600);
Что происходит?: В этом сценарии он ждет 600 миллисекунд перед выполнением кода, указанного в фигурных скобках.
Это очень помогло мне разобраться, и я надеюсь, что это поможет вам!
Ответ 5
Есть функция, но она дополнительно:
http://docs.jquery.com/Cookbook/wait
Этот небольшой фрагмент позволяет подождать:
$.fn.wait = function(time, type) {
time = time || 1000;
type = type || "fx";
return this.queue(type, function() {
var self = this;
setTimeout(function() {
$(self).dequeue();
}, time);
});
};
Ответ 6
Использование функции setTimeout, например Посетите здесь, например,