如何在几秒钟后隐藏Flash消息?

时间:2015-07-02 05:42:08

标签: jquery flash-message

在我的应用程序中,用户可以为其他用户发布挑战。因此,在成功发布挑战后,我正在显示一条相同的flash消息。但现在我想在几秒钟后隐藏这条消息。所以我写了以下代码:

$(document).ready(function(){
    setTimeout(function() {
        $("#successMessage").hide('blind', {}, 500)
    }, 5000);
});

<div id="successMessage" style="text-align:center; width:100%">
    <FONT color="green">
        <%if flash[:alert]=="Your challenge is posted successfully."%> 
            <h4><%= flash[:alert] if flash[:alert].present? %>
        <%end%>
    </font>
</div>

但是这段代码并没有隐藏div“successMessage”。

4 个答案:

答案 0 :(得分:14)

您可以尝试:

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

如果你使用了这个,那么你的div将在30秒后隐藏。我也试过这个,它对我有用。

答案 1 :(得分:4)

您可以使用delay jQuery API来实现此目标。

$(document).ready(function(){
    $("#successMessage").delay(5000).slideUp(300);
});

答案 2 :(得分:1)

有人对此解决方案发布了与stackoverflow类似的问题:

<script type="text/javascript">window.setTimeout("document.getElementById('successMessage').style.display='none';", 2000); </script>

<div id="successMessage"> bla bla bla
</div>

我会分享链接,但现在找不到了。不过,感谢您的帮助,神秘的人类!

答案 3 :(得分:0)

有时仅将框的显示设置为无是不够的,最好将其完全删除。如下:

setTimeout(function() {
    $('.alert-box').remove();
}, 30000); 
相关问题