As a modification of current answers, a single setInterval call can be used, cancelling it when all words are displayed:
// s is string to display
// interval is the time in milliseconds between adding words
// id is the id or reference to a DOM element to display s in
function staggerDisplay(s, interval, id) {
var el = typeof id == 'string'? document.getElementById(id) : id;
var sBits = s.split(' ');
var numWords = sBits.length;
var i = 0;
var intervalRef = setInterval(
function () {
if (i < numWords) {
el.innerHTML += ' ' + sBits[i++];
} else {
clearInterval(intervalRef);
}
}, interval);
}
setTimeout. It'sevalin disguise.