2014-09-21 77 views
0

嗨我是新的使用JavaScript與軌道,並希望我能得到一些幫助。我有一個像我喜歡的按鈕,而不像一個帖子。Rails 3:javascript表單提交後使用.js.erb文件更新單個div

home.html的:

<%= form_for(current_user.appreciations. 
          build(:liked_id => post.id), 
          :remote => true) do |f| %> 
<div><%= f.hidden_field :liked_id %></div> 
<div class="actions"><%= f.submit "Like" %></div> 
<% end %> 

我使用js.erb文件呈現不同形式的崗位已經喜歡了。

create.js.erb:

$("#like_form_<%= @post.id.to_s %>").html("<%= escape_javascript(render(:partial => 'users/unlike', :locals => {:post => @post})) %>") 

我想添加一行將更新一個div類=「像數<%= 」_「 + post.id.to_s%>」之後在我看來

home.html的:

<div class="like-count<%= "_"+ post.id.to_s%>"> 
    <%= user_post.likers.count.to_s %> 
</div> 

我有一個飼料顯示多個崗位,我用post.id.to_s爲了選擇特定的崗位像數進行更新。爲了測試,我定位了一個sp ecific post id = 94,我正在使用下面的代碼,但它似乎不工作。

新create.js.erb:

$("#like_form_<%= @post.id.to_s %>").html("<%= escape_javascript(render(:partial => 'users/unlike', :locals => {:post => @post})) %>" 
$(".like-count_94").reset(); 

右側功能或者我要去哪裏錯將是巨大的任何輸入,非常感謝。

回答

0

如果您的like-count div是唯一的,那麼爲什麼不用ID和班級呢?

$("#like-count").reset(); 

如果確實需要一個類,因爲你抓住了第一個,你可以使用如下語法first方法(jsfiddle):

$(".like-count").first().text('NEW TEXT/CONENT TO ADD'); 

我不相信這是正確的jQuery語法:

$(".like-count").[0].reset(); 
+0

感謝您的幫助,我試圖用.reset段(),我有一個飼料許多不同的職位,需要使用。像數作爲一個階級對每一個崗位。我需要使用.like-count <%= @ post.id.to_s%>才能找到正確的帖子來更新相似的計數。我不想用文本替換div,而只是刷新顯示新內容的更新內容。對於測試,我使用$(「。like-count_94」)。要定位特定的帖子,然而,點擊類似的按鈕,它不刷新.like-count_94股利,並顯示一個新的類似的數字。我更新了帖子以顯示我的更改,謝謝! – 2014-09-22 08:18:51

+0

沒問題!僅供參考,reset() - 方法 - 用於表單並將它們重置爲其默認狀態(即清除表單域)。我不相信它會在div上工作。我的意思是你想要的文字('')/ html('')方法,它將取代現有的內容或附加('')將添加內容到div。您可能只需在您的controller/.js.erb中重新創建div的內容,然後重新渲染它(即使用text()或html()方法)。 – 2014-09-22 16:24:57

+0

我試過一些與.html()和.reset()的東西,但我仍然很迷茫,如何刷新一個div,我甚至嘗試創建一個單獨的部分來取代部分,但我無法獲得'post':當地人工作:( – 2014-09-24 05:09:20