代码之家  ›  专栏  ›  技术社区  ›  Chris Conway

jquery自动隐藏元素5秒后

  •  85
  • Chris Conway  · 技术社区  · 15 年前

    是否可以在使用jquery加载表单5秒后自动隐藏网页中的元素?

    基本上,我有

    <div id="successMessage">Project saved successfully!</div>
    

    我想在5秒钟后消失。我看过jquery用户界面和隐藏效果,但是我有点难以按照我想要的方式工作。

    <script type="text/javascript">
            $(function() {
                function runEffect() {
    
                    var selectedEffect = 'blind';
    
                    var options = {};
    
                    $("#successMessage").hide(selectedEffect, options, 500);
                };
    
                $("#successMessage").click(function() {
                    runEffect();
                    return false;
                });
            });
        </script>
    

    我希望删除click函数并添加一个超时方法,该方法在5秒后调用runeffect()。

    多好啊!

    7 回复  |  直到 7 年前
        1
  •  102
  •   Konstantin Tarkus    15 年前
    $(function() {
        // setTimeout() function will be fired after page is loaded
        // it will wait for 5 sec. and then will fire
        // $("#successMessage").hide() function
        setTimeout(function() {
            $("#successMessage").hide('blind', {}, 500)
        }, 5000);
    });
    

    注释 :为了使jquery函数在settimeout内工作,应该将其包装在

    function() { ... }
    
        2
  •  190
  •   Tim Cooper    12 年前
    $('#selector').delay(5000).fadeOut('slow');
    
        3
  •  7
  •   Ikhlak S. Shantanu Sharma    8 年前

    你可以试试:

    setTimeout(function() {
      $('#successMessage').fadeOut('fast');
    }, 30000); // <-- time in milliseconds
    

    如果你用了这个,你的DIV会在30秒后隐藏。我也试过这个,它对我有用。

        4
  •  1
  •   Christian C. Salvadó    15 年前

    对runeffect函数使用setTimeout:

    function runEffect() {
        setTimeout(function(){
            var selectedEffect = 'blind';
            var options = {};
            $("#successMessage").hide(selectedEffect, options, 500)
         }, 5000);
    }
    
        5
  •  1
  •   Petertje    10 年前

    我想,你也可以做一些像…

    setTimeout(function(){
        $(".message-class").trigger("click");
    }, 5000);
    

    在活动上做动画效果,点击…

    $(".message-class").click(function() {
        //your event-code
    });
    

    问候语,

        6
  •  0
  •   Aakash Pahuja    7 年前

    这是单击后设置超时的方法。

    $(".selectorOnWhichEventCapture").on('click', function() {
        setTimeout(function(){
            $(".selector").doWhateverYouWantToDo();
        }, 5000);
    });
    

    //5000=5秒=5000毫秒

        7
  •  0
  •   Cris    7 年前

    请注意,可能需要在DIV文本消失后再次显示它。 所以您还需要清空,然后在某个时刻重新显示元素。

    您可以使用一行代码来完成此操作:

    $('#element_id').empty().show().html(message).delay(3000).fadeOut(300);
    

    如果使用jquery,则不需要设置超时,至少不需要自动隐藏元素。