JQuery $('# div'). Show(). Delay (5000).hide(); не работает
Я пытаюсь показать div, установленный на display: none;
в течение 5 секунд с помощью
$('#div').show().delay(5000).hide();
но он не работает, он просто прячется, чтобы скрыть()
Может кто-нибудь из вас мне помочь?
Ответы
Ответ 1
Сделайте это так:
$('#div').show(0).delay(5000).hide(0);
Переходя в числах до .show()
и .hide()
, jQuery будет принимать эти методы во внутреннюю очередь fx (даже если число равно нулю). Так как .delay()
работает только в очереди, вам потребуется небольшое обходное решение.
пример: http://jsfiddle.net/zceKN/
Ответ 2
Вам нужно использовать .queue()
, потому что .hide()
по умолчанию не ставится в очередь.
$("#div").show().delay(5000).queue(function (next) {
$(this).hide();
next();
});
Ответ 3
Вам нужна длительность в вашей шкуре, чтобы она работала:
$('#div').show('slow').delay(5000).hide('slow');
Пример: http://jsfiddle.net/Paulpro/GLTaB/
Ответ 4
$('#div').show();
setTimeout(function(){$('#div').hide();}, 5000);
.delay() работает только для анимаций