Использование setTimeout()
непосредственно (который .delay()
использует внутренне) проще здесь, так как .remove()
не в очередь функции, в целом это должно выглядеть следующим образом:
$('body').append("<div class='message success'>Upload successful!</div>");
setTimeout(function() {
$('.message').remove();
}, 2000);
You can give it a try here.
.delay()
для анимации (или любой другой по имени) очереди, чтобы использовать его, вы должны были бы сделать что-то вроде:
$("<div class='message success'>Upload successful!</div>").appendTo('body')
.delay(2000).queue(function() { $(this).remove(); });
Which works, here ... но это просто излишеством и очень неэффективно, ради цепи ИМО. Как правило, вам также необходимо вызвать dequeue или следующую функцию, но так как вы все равно удаляете элемент ...
+1 всегда содержит хорошие ответы на jquery, аналогичные тем, которые вы предоставили f или меня раньше ... –
@ Shog9 - Чтобы быть полностью * точным, это не просто * анимация, это просто * по умолчанию * анимация очереди 'fx' работает, но это может быть любая очередь, если передано имя :) –
Woops, удалил этот комментарий, так как вы обновили свой ответ. Но вы правы, поддержка очереди довольно универсальна и может быть использована для других вещей - анимация просто по умолчанию. – Shog9