2014-09-21 71 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