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 directly to make it more easy to follow for the customer, who will maintain it himself, without any experience.
My code:
$('#chatwindow').append('test').delay(2000).append('test');
In this code, I get ‘testtest’ printed at the same time, delay is ignored.
This is because
delay(2000)queues thefxqueue by default, whichappend()is never part of.Instead, you can specifically queue
append()on it using thequeue()function.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
setTimeoutas it’s a fundamental part of JavaScript, unlikedelay(), 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.