5秒后jQuery自动隐藏元素


92

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

基本上,我有

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

我想在5秒后消失。我已经看过jQuery UI和hide效果,但是在按我想要的方式工作时遇到了一些麻烦。

<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()的超时方法。

Answers:


115
$(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() { ... }

1
我在我的网站上尝试了此代码。但是,它没有用。除了此js脚本外,我还需要什么才能使其工作?请指教!谢谢!
Jornes

1
@Jornes确保此脚本位于<script src="jquery.js"></script>您页面的后面。
Konstantin Tarkus 2015年

217
$('#selector').delay(5000).fadeOut('slow');

2
请注意,此解决方案会破坏$('html')。click(function(){//在$(“#selector”)。fadeOut();}之外单击);
max4ever 2013年

感谢您提供这种简单的解决方案。
罗恩

谢谢你很简单的解决方案!
Anahit DEV 2015年

9

你可以试试 :

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

如果您使用了它,那么30秒钟后您的div将被隐藏。


3

请注意,消失后,您可能需要再次显示div文本。因此,您还需要清空然后在某个时候重新显示该元素。

您可以使用1行代码来做到这一点:

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

如果您使用的是jQuery,则不需要setTimeout,至少不需要自动隐藏元素。


1

您可以在runEffect函数上使用setTimeout:

function runEffect() {
    setTimeout(function(){
        var selectedEffect = 'blind';
        var options = {};
        $("#successMessage").hide(selectedEffect, options, 500)
     }, 5000);
}

1

我想,您也可以做类似...

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

并在事件单击上执行动画效果...

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

问候,


1

jQuery(“。success_mgs”)。show(); setTimeout(function(){jQuery(“。success_mgs”)。hide();},5000);


0

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

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

// 5000 = 5秒= 5000毫秒

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.