2012-06-29 4 views
0

upvote 버튼과 함께 AJAX를 사용하고 있습니다. 사용자가 'UpVote'버튼을 클릭하면 양식을 제출해야하며 비활성화 된 'Upvoted'버튼이 나타납니다.Ajax가 하나의 테이블 셀을 업데이트해야 할 때 전체 열을 업데이트합니다.

는 지금 upvoting는 작동하지만, 그렇게되면 그 다음 페이지에서 '찬성 투표'버튼 수익을 upvoted되지 않은 버튼을 다시로드, upvoted하기 위해 열에서 모든 '찬성 투표'버튼을 변경 (이상한).

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

단일 행이 아닌 열 전체에 대해 위의 DIV를 변경해야합니다 :

<% @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이있다.

어떻게 해결할 수 있습니까? 모든 힌트/도움을 크게 주시면 감사하겠습니다.

답변

1

모든 div가 동일한 'upvote-form'ID를 가진 것처럼 보입니다. 따라서 선택기 "div # upvote-form"은 교체를 위해 모든 upvote btn을 선택합니다. 각 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}" –

관련 문제