Javascript Rails和jQuery:单击后删除类

Javascript Rails和jQuery:单击后删除类,javascript,jquery,ruby-on-rails,forms,Javascript,Jquery,Ruby On Rails,Forms,I vahe view表格,此表格有: day),:id=>'link',:class=>'active\u link'> 此链接使用day参数重新排列此表单,并使用此参数呈现此表单上的项目。我想在点击这个链接后,在重新呈现表单后,类“活动链接”被删除。我怎样才能做到 备注:这是项目(收藏中的日项目)的链接。您可以执行以下操作: $('a.active_link').click(function(){ $(this).removeClass('active_link'); });

I vahe view表格,此表格有:

day),:id=>'link',:class=>'active\u link'>

此链接使用day参数重新排列此表单,并使用此参数呈现此表单上的项目。我想在点击这个链接后,在重新呈现表单后,类“活动链接”被删除。我怎样才能做到

备注:这是项目(收藏中的日项目)的链接。

您可以执行以下操作:

$('a.active_link').click(function(){
      $(this).removeClass('active_link');
});
我不是ruby的专家,但是如果你的链接呈现为

<a id='link' class='active_link'></a>

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

在控制器中:

@active_day = params[:day]
在你看来:

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

天),类=>(天==@active\u day?active\u link':'')%

显然,你需要调整一些代码才能在你的应用程序中工作-你没有显示足够的代码让我编写一个工作代码解决方案。

你在锚上的id是唯一的吗?有一段时间,我犯了一个错误,在相同的元素上有相同的id…点击的绑定只获取了我拥有的id中的一个。如果你只想获取一个,请使用一个唯一的id,如果你想获取多个相同概念的东西,请使用“id css类”…也就是说,一个没有真正css定义支持的类。我通常通过在末尾添加“-id”来区分这些类和真正的css类。正如jaydel所说,id必须是唯一的。我试着重写我的代码,试着你能把html输出到浏览器吗?