Вы можете использовать .delay()
перед анимацией, например:
$("#myElem").show().delay(5000).fadeOut();
Если это не анимация, используйте setTimeout()
напрямую, например:
$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);
Вы делаете второе, потому что .hide()
обычно не будет в очереди анимации (fx
) без продолжительности, это просто мгновенный эффект.
Или другой вариант - использовать .delay()
и .queue()
самостоятельно, например:
$("#myElem").show().delay(5000).queue(function(n) {
$(this).hide(); n();
});