I can\'t make the delay function of jQuery works with append
function. What is wrong? Is there a way to make it work? I want to avoid using setTimeout
This is because delay(2000) queues the fx
queue by default, which append()
is never part of.
Instead, you can specifically queue append()
on it using the queue() function.
$('#chatwindow').append('test').delay(2000).queue(function (next) {
$(this).append('test');
next();
});
You can see an example of this working here; http://jsfiddle.net/mj8qC/
However, I agree with @ascii-lime's comment; I expect the customer will have more chance understanding setTimeout
as it's a fundamental part of JavaScript, unlike delay()
, which confuses many users (from experience on questions asked on StackOverflow).
FWIW, this question triggered me to write a blog post on the uses of delay()
; it goes into more detail than this answer, and might be great further reading for others.