2012-06-29 46 views
0

我使用AJAX与upvote按钮。当用户点击“UpVote”按钮时,应该提交表单并显示禁用按钮“Upvoted”。Ajax更新整个列时应更新一个表格单元格

现在是upvoting的作品,但是当它改变列中的每个'UpVote'按钮为upvoted,然后在页面重新加载没有upvoted的按钮返回到'UpVote'按钮(奇怪):

<% @master_songs.each do |master_song| %> 
    <td><div id="upvote-form"> 
      <% unless current_user.up_voted_song?(master_song) %> 
       <%= render 'upvote', :master_song => master_song %> 
      <% else %> 
       <%= render 'upvoted' %> 
      <% end %> 
     </div></td> 
    <% end %> 

song_up_votes.js.erb是这样的:

$("div#upvote-form").html("<%= escape_javascript(render('fan_bases/upvoted')) %>") 

,应该改变上述格为单排不整列。

我该如何解决这个问题?任何提示/帮助非常感谢。

回答

1

看起来你所有的div都有相同的'upvote-form'id。因此选择器“div#upvote-form”选择所有upvote btns进行替换。给每个div一个唯一的ID,这应该可以解决你的问题。

+0

对不起,如果我是模糊的。我的意思是我有一张桌子,上面有一个<%@ master_songs.each do | master_song | %>块,所以我不能为每个div分配一个ID。 – Jches

+0

嗯,它可能不是您的问题的正确解决方案,但很容易在您的情况下添加一个唯一的ID - 例如:@ master_songs.each_with_index do | song,i | .... id =“upvote-form - #{i}” –

相关问题