Я хочу добавить класс, подождать 2 секунды и добавить еще один класс.
.addClass("load").wait(2sec).addClass("done");
Есть ли способ?
Я хочу добавить класс, подождать 2 секунды и добавить еще один класс.
.addClass("load").wait(2sec).addClass("done");
Есть ли способ?
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.
Это будет .delay()
.
Если вы делаете AJAX-материал tho, вам действительно не следует просто писать "done", вы должны действительно ждать ответа и посмотреть, действительно ли это сделано.
Поймите, что это старый вопрос, но я написал плагин для решения этой проблемы, который может оказаться полезным.
https://github.com/madbook/jquery.wait
позволяет сделать это:
$('#myElement').addClass('load').wait(2000).addClass('done');
delay() не будет выполнять задание. Проблема с задержкой() является частью системы анимации и применяется только к очередям анимации.
Что делать, если вы хотите подождать до выполнения чего-то вне анимации?
Используйте это:
window.setTimeout(function(){
// do whatever you want to do
}, 600);
Что происходит?: В этом сценарии он ждет 600 миллисекунд перед выполнением кода, указанного в фигурных скобках.
Это очень помогло мне разобраться, и я надеюсь, что это поможет вам!
Есть функция, но она дополнительно: 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);
});
};
Использование функции setTimeout, например Посетите здесь, например,