JS和Rails网站广播公告

时间:2010-06-12 19:13:14

标签: javascript ruby-on-rails ruby

尝试做http://davidwparker.com/2008/09/17/site-wide-announcements-in-rails-using-jquery-jgrowl/

JS非常糟糕。想想我在最后一部分搞砸了“这段代码放在你的application.js文件中(某处是$(function){// here})”

我是不是不想做一个link_to_function并使用引用该链接的代码创建一个函数?

真的迷失了这个。

更新 -

application.js看起来像

$(document).ready(function() {
    $.jGrowl.defaults.closer = true;
      $("#announcements_box").css("display", "none");
      $("#announcements_box .announcement").each(function(){
        $jQuery.jGrowl(this.textContent,{ sticky:true, close:function(e,m,o){hide_announcements();} });
      });

 });

function hide_announcements(){
    $.get(
      '/hide_announcements'
    );

    $("#announcements_box").fadeOut();
    return false;
  }

我的application.html.erb有

<% unless current_announcements.empty? %>
<div id="announcements_box">
<% for announcement in current_announcements %>
    <div id="announcement_<%= announcement.id.to_s %>"  class="jGrowl">
    <%= announcement.message %>
    <%= link_to "Hide Annoucements", hide_announcements_path, :id => 'hideAnn'%>
    </div>
<% end %>
</div>
<% end %>

2 个答案:

答案 0 :(得分:0)

我不确定$(function){ //here }符号的含义是什么,应该在浏览器中给出错误,但我认为他只是想在页面加载后执行代码:

$(document).ready(function() {
    // here
}

答案 1 :(得分:0)

罪魁祸首是当我需要一个div ID和类时,我只输入了一个div ID。