如何在一段时间后关闭Rails的提示信息?

5

我想设置在flash提示自动消失之前,向用户显示的秒数。

2个回答

17

你可以在页面上使用一些简单的JavaScript(以下示例使用jQuery):

$('document').ready(function() {
  setTimeout(function() {
    $('#flash').slideUp();
  }, 3000);
});

假设包含提示信息的HTML元素的id为#flash,以下代码会使其在3000毫秒(3秒)内向上滑动并隐藏起来。


1
如果我没记错的话,Rails 的闪现消息默认的类名是 notice - rlecaro2
1
默认情况下,Rails new不会将flash放入layouts/application.html.erb中,而Rails指南中的代码示例根本不使用类。你是指脚手架模板吗? - Louis Simoneau
这正是我所想的。 - rlecaro2
这些答案让我意识到,闪现默认情况下会一直保持可见,而不是在一定时间后消失。我以为它是一个可以在Rails配置中设置的时间,但实际上它是在我正在处理的项目中明确设计为消失的。 - Robert Kajic

3

结合@LouisSimoneau和@rlecaro2已经提到的内容 - 我目前使用:

function clearNotice(){
  $(".notice").animate({opacity:'0'}, 1500);
}

请注意,如果您正在使用带有Turbolinks的Rails 4,则需要从ready函数中调用它:
$(document).ready(ready);
$(document).on('page:load', ready);

var ready = function() {    
   setTimeout(clearNotice, 1000);  //Flash fade
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接