This week I was working on a project that required me to add a css class to an element within a sequence of events.
First I wanted to fadeOut() an array of elements, wait a moment, and then add a class to another element.
Because Javascript is asynchronous, on my first attempt everything executed, just not in the order I had anticipated.
Enter jQuery.queue().
This handy little function allows you to pass in a callback with next as a parameter, enabling you to call jQuery and Javascript synchronously.
someElements.fadeOut()
.delay(200)
.queue(function(next) {
otherElements.removeClass('active');
thisElement.addClass('active');
next(); // continue to next line
});
someElements.fadeIn();
Now we can call fadeOut() on someElements, handle adding and removing classes after our delay() and then fade someElements back in.
