在我的应用程序中,用户可以为其他用户发布挑战。因此,在成功发布挑战后,我正在显示一条相同的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”。
答案 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);