【问题标题】:Using Jquery to slowly hide a div使用jquery慢慢隐藏一个div
【发布时间】:2011-03-01 21:19:48
【问题描述】:

我正在尝试编写一些代码来查找 div 是否存在,如果存在则让它慢慢消失。我有这个来确定 div 是否存在

if($('#error').length != 0) { $('#error').hide(500); }

这确实有效,但仅在刷新时,我一直在尝试将其放入这样的计时器中:

var refreshId = setInterval(函数() { if($('#error').length != 0) { $('#error').hide(500); } }, 500);

但它并没有摆脱innerHTML!我有一些代码在悬停时会改变错误 div 的 innerHTML,因此我可以将其填充,但由于某种原因这不起作用,任何建议都会有所帮助!

谢谢!

【问题讨论】:

    标签: javascript jquery hover


    【解决方案1】:
    $("#error").fadeOut(500);
    

    更新:

    如果您要检查是否存在:

    var msg = $("#error");
    if(msg.length) {
      msg.fadeOut(500);
    }
    

    如果你想清空它:

    $("#error").empty();
    

    【讨论】:

    • 哦,我同意。然而,在他的声明中,他正在检查是否存在,由于其他原因可能会或可能不会在他的程序的其他地方使用。我想我不妨添加它,一般我建议只使用第一行。
    【解决方案2】:

    如果您只想延迟 500 毫秒然后淡出,请执行以下操作:

    $("#error").delay(500).fadeOut();
    

    要同时清空元素,请像这样向.fadeOut() 提供回调:

    $("#error").delay(500).fadeOut(function() {
      $(this).html('');
    });
    

    无需检查.length,如果不存在与选择器匹配的元素,则不会发生任何事情:)

    【讨论】:

      【解决方案3】:

      您尝试隐藏的 div 可能在您的脚本运行时尚未加载。尝试这个;它将推迟执行,直到加载 DOM:

       $(document).ready(function() {
         // put your code here
       });
      

      无论如何,在使用 jQuery 时这是一个很好的做法。

      参考:http://docs.jquery.com/Tutorials:Introducing_$(document).ready()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-08
        • 2015-03-03
        • 2011-02-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多