Код, который вы используете, не будет работать по разным причинам - нулевая задержка между вызовами fadeOut
и fadeIn
означает, что вы не получите 3-секундную задержку, которую вы ищете между исчезновением и исчезновением, и что вызов обеих функций приводит к некоторым странным эффектам в очереди эффектов jQuery.
Лучшим вариантом было бы использовать рекурсивную функцию вместе с delay
, чтобы сделать это:
var div = $('div').hide(),
news = ['news1', 'news2', 'news3'],
count = 0;
function changeNews() {
div.fadeIn(3000).delay(3000).fadeOut(3000, function() {
changeNews();
}).text(news[count++]);
}
changeNews();
Простую демонстрацию этого можно найти здесь: http://jsfiddle.net/Fpu2E/4/