【问题标题】:jquery/rails exception for fading out flash message用于淡出 Flash 消息的 jquery/rails 异常
【发布时间】:2013-08-22 08:49:30
【问题描述】:

我在application.js 中有以下代码来淡出闪烁消息:

//fadeout flash messages
$('.flash').fadeIn(function() {
    setTimeout(function() {
        $('.flash').fadeOut();
    }, '2000');
});

但是,在sessions_controller.rb 中,如果发生登录错误,则会显示一条消息,其中将包含一个用于重置用户密码的链接——我不希望该链接淡出!

flash.now[:login_error] = "Invalid email/password combination.  
                           Have you #{ActionController::Base.helpers.link_to "forgotten your password?", '#'}".html_safe

有没有办法使login_error 类型的flash 消息免于application.js 中的代码?

编辑:

login_error 消息的 html - 实际上它只是一个 css 类,所以应该很容易。

<div class="flash login_error">
  Invalid email/password combination.  
  Have you <a href="#">forgotten your password?</a>
</div>

解决方案:

techvineet 的建议在用户未登录时禁用淡入淡出是一个很好的建议 - 我这样做很广泛,但我能想到的最简单的方法 - 在application.html.erb

<%= javascript_include_tag "application" unless current_user.nil?  %>

但是,arjan 的答案只针对我更明确的目标。

【问题讨论】:

  • 能否请您发布登录错误消息的 HTML 和标准错误消息。
  • 只有用户登录后才能启用淡入淡出功能
  • @techvineet,好主意!
  • @dax - 如果真的有帮助,请投票支持此评论。
  • 给出答案,我会做的 - 我不认为你会得到 cmets 的业力 :)

标签: jquery ruby-on-rails ruby-on-rails-3


【解决方案1】:

你可以使用jQuery的not方法http://api.jquery.com/not/

//fadeout flash messages
$('.flash').not('.login_error').fadeIn(function() {
    setTimeout(function() {
        $('.flash').fadeOut();
    }, '2000');
});

【讨论】:

    【解决方案2】:

    只有在用户登录后才能启用淡入淡出功能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多