Rails和jQuery:点击后删除类

时间:2011-06-14 11:15:07

标签: javascript jquery ruby-on-rails forms

我是查看表单,此表单有:

<%= link_to day, root_path(:day => day), :id => 'link', :class => 'active_link' %>

此链接使用day参数重新处理此表单,并使用此参数呈现此表单上的项目。我希望在点击此链接之后,重新渲染表单 - 删除“active_link”类。我该怎么做?

P.S:这是项目的链接(收集日期项目)。

2 个答案:

答案 0 :(得分:1)

这是一个视图逻辑问题,而不是JavaScript / jQuery问题。您正在使用普通链接更改day参数并重新呈现整个页面。基于您向我们展示的唯一代码行,我猜测您的视图会循环显示一堆日期并为每个日期打印一个链接。问题是,您要将active_link类分配给视图中的所有日期链接。在页面加载后,在浏览器中使用jQuery“修复”此问题是错误的方法;而是修复您的视图逻辑,只将active_link类分配给一个正确的链接(并抛弃非唯一的'链接'ID)。

在您的控制器中:

@active_day = params[:day]

在您看来:

<% days.each do |day| %>
  <%= link_to day, root_path(:day => day), :class => (day == @active_day ? 'active_link' : '') %>
<% end %>

显然,您需要调整一些代码才能在您的应用中运行 - 您没有为我编写足够的代码来编写有效的代码解决方案。

答案 1 :(得分:0)

你可以这样做:

$('a.active_link').click(function(){
      $(this).removeClass('active_link');
});

我不是ruby的专家,但如果您的链接呈现为

,则此功能正常
<a id='link' class='active_link'></a>