jQuery延迟和隐藏元素

时间:2014-02-24 14:44:30

标签: jquery

为什么以下不起作用?如何单击元素,将其隐藏一段时间,然后显示它? http://jsfiddle.net/ba8bJ/

$('#myButton').click(function() {$(this).hide().delay(800).show()});

4 个答案:

答案 0 :(得分:3)

如果指定了持续时间,

hide()show()仅使用动画队列。

您可以提供0的持续时间,只需写下:

$("#myButton").click(function() {
    $(this).hide(0).delay(800).show(0);
});

您会找到更新的小提琴here

答案 1 :(得分:2)

一般来说,delay()用于制作动画。请改用setTimeout()

http://jsfiddle.net/rGqpn/

$('#myButton').click(function () {
    var $this = $(this).hide();
    setTimeout(function() {
        $this.show();
    }, 800);
});

答案 2 :(得分:2)

$('#myButton').click(function () {
    $(this).fadeOut(0).delay(800).fadeIn(0)
});

延迟仅适用于动画/查询功能

答案 3 :(得分:1)

将持续时间传递给show()和hide(),因为当提供持续时间时,.show()成为动画方法:

$('#myButton').on('click', function() {
    $(this).hide(0).delay(800).show(0);
});

<强> JSFiddle