Uso setTimeout()
directamente (que .delay()
utiliza internamente) es más simple aquí, ya .remove()
no es una función de la cola, en general, debería tener este aspecto:
$('body').append("<div class='message success'>Upload successful!</div>");
setTimeout(function() {
$('.message').remove();
}, 2000);
You can give it a try here.
.delay()
es para la animación (o cualquier nombre) de cola, para usarlo tendría que hacer algo como:
$("<div class='message success'>Upload successful!</div>").appendTo('body')
.delay(2000).queue(function() { $(this).remove(); });
Which works, here ... pero es sólo una exageración y terriblemente ineficiente, en aras de encadenar a la OMI. Normalmente también deberías llamar a dequeue o a la siguiente función, pero dado que estás eliminando el elemento de todos modos ...
+1 siempre proporcionando buenas respuestas jquery similares a la que proporcionó f o yo antes ... –
@ Shog9 - Para ser * completamente * preciso no son * solo * animaciones, es solo * por defecto * las animaciones de cola 'fx' se ejecutan, pero puede haber cualquier cola si pasa un nombre :) –
Woops, borró ese comentario desde que actualizó su respuesta. Pero está en lo cierto, el soporte de cola es bastante general y podría usarse para otras cosas, las animaciones simplemente lo hacen por defecto. – Shog9