【问题标题】:Jquery $('#div').show().delay(5000).hide(); doesn't workjQuery $('#div').show().delay(5000).hide();不工作
【发布时间】:2011-09-02 20:01:25
【问题描述】:

我正在尝试显示一个设置为 display: none; 的 div 5 秒

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

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

有谁能帮帮我吗?

【问题讨论】:

    标签: javascript jquery css


    【解决方案1】:

    这样做:

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

    通过将数字传递给.show().hide(),jQuery 会将这些方法放入其内部fx 队列(即使数字为零)。由于.delay() 只能在队列中工作,因此您需要这个小解决方法。

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

    【讨论】:

    • +1 这很漂亮。比我将它添加到队列中的蛮力方法要好得多。
    • hide(0) 也适用于动画。我什至不需要延迟.animate({opacity: 0}, 400).hide(0)
    【解决方案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() 仅适用于动画

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-05
          • 2019-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多