Как скрыть текст через 5 секунд с помощью jQuery?

Как я могу скрыть # результата через 5 секунд? Я пробовал это, но он не работает.

$('#results').hide().html(data).fadeIn('slow').delay(5000).hide();

У меня был этот

$('#results').hide().html(data).fadeIn('slow');

Ответ 1

Настройте продолжительность своего вызова hide(), и он будет работать следующим образом:

$('#results').hide().html(data).fadeIn('slow').delay(5000).hide(1);

Проблема заключается в том, что hide() без каких-либо параметров является непосредственной операцией. Он не проходит через очередь fx, поэтому он не приходит после .delay(5000). Но если вы даете длительность функции типа .hide(1), то она становится анимацией и проходит через очередь fx и, таким образом, выйдет после .delay(5000).

Вы можете увидеть, как он работает здесь: http://jsfiddle.net/jfriend00/wzbtU/


Из jQuery doc для hide():

Когда задана продолжительность,.hide() становится методом анимации.

Ответ 2

Вы имеете в виду что-то вроде:

$('#results').hide().html(data).fadeIn('slow');

setTimeout(function() {
    $('#results').hide();
}, 5000);

Ответ 3

Вам нужно будет использовать setTimeout.

setTimeout("$('#results').hide().html(data).fadeIn('slow');", 5000);

Причина, по которой .delay(5000) не работает, состоит в том, что .hide() не входит в очередь анимации.