Jquery $('#div')。show()。delay(5000).hide();不起作用

时间:2011-09-02 20:01:25

标签: javascript jquery css

我正在尝试使用

显示设置为display: none; 5秒的div
$('#div').show().delay(5000).hide();

但它不起作用,它只是直接隐藏()

你们有人可以帮助我吗?

4 个答案:

答案 0 :(得分:121)

这样做:

$('#div').show(0).delay(5000).hide(0);

通过将数字传递给.show().hide(),jQuery会将这些方法带入其内部 fx队列(即使数字为零)。由于.delay()仅适用于队列,因此您需要一点解决方法。

示例:http://jsfiddle.net/zceKN/

答案 1 :(得分:8)

您需要使用.queue(),因为.hide()默认情况下不会排队。

$("#div").show().delay(5000).queue(function (next) {
    $(this).hide();
    next();
});

答案 2 :(得分:3)

您需要在隐藏中使用一段时间才能正常工作:

$('#div').show('slow').delay(5000).hide('slow');

示例:http://jsfiddle.net/Paulpro/GLTaB/

答案 3 :(得分:2)

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

.delay()仅适用于动画