红宝石中的淡出(闪光:通知)不能正常工作

时间:2010-07-08 19:16:38

标签: ruby-on-rails

我有一个简单的电子邮件条目,当用户按下提交按钮且电子邮件为空或无效时,该条目应闪烁通知“电子邮件不能为空或无效”。我设法让它工作,所以通知弹出电子邮件条目表单。但我想要的是直接在电子邮件条目表单上然后淡出的错误消息。我一直在查找不同的淡出片段,一切看起来都非常简单 - 所以我错过了什么?感谢任何帮助。

这是在应用程序助手中:

def show_flash_message(options={})
html = content_tag(:div, flash.collect{ |key,msg| content_tag(:div, msg, :class => key) }, :id => 'flash-message')
if options.key?(:fade)
html << content_tag(:script, "setTimeout(\"new Effect.Fade('flash-message');\",#{options[:fade]*1000})", :type => 'text/javascript')
end
html

这是在布局中:     &lt;%= javascript_include_tag:all%&gt;

这是在视图中:     &lt;% - flash.each do | flash_type,message | - %GT;     &lt;%= content_tag:div,message,:class =&gt; “flash#{flash_type}”%&gt;     &lt;%content_tag:script,:type =&gt; “text / javascript”do%&gt;     setTimeout(“$$('div.flash')。each(function(flash){flash.hide();})”,1000);     &lt;%end%&gt;     &lt;% - end - %&gt;

<div class="inputs" style="margin-left:30px">
<%= f.text_field :email, :value => 'Please enter your email.', :onfocus => "if(this.value==this.defaultValue) this.value=''; this.style.color = '#333333'", :onblur => "if(this.value=='') this.value=this.defaultValue;this.style.color = '#aaaaaa'"%> 
   

1 个答案:

答案 0 :(得分:1)

看起来你正在使用你的$$动作中的Prototype。你应该检查Scriptaculous淡入淡出效果:

http://wiki.github.com/madrobby/scriptaculous/effect-fade