gpt4 book ai didi

Javascript 不会更新 div Rails 4

转载 作者:行者123 更新时间:2023-11-28 00:07:59 25 4
gpt4 key购买 nike

Rails 4 新手你好。我似乎无法让 ajax 来更新 View 。我很茫然。单击 View 中的 +1 链接时,我可以收到弹出警报,但无法让 View 更新(显示投票) id="ajaxed"的跨度,即使数据库正在更新。我已经阅读了关于 ajax 的 Rails 指南,并在 youtube 上观看了大约 6 个关于如何执行此操作的视频,这对我来说似乎是正确的,但对我来说不起作用。这是我的 html:

    <tbody>
<% @topics.each do |topic| %>
<tr>
<td><%= topic.title %></td>
<td><%= topic.description %></td>
<td><span id="ajaxed"><%=pluralize(topic.votes.count, "vote")%></span></td>
<td><%= link_to "+1", upvote_topic_path(topic), id: "upvote", remote: true, method: :post%></td>
<td><%= pluralize(topic.downvotes.count, "downvote") %></td>
<td><%= link_to "-1", downvote_topic_path(topic), method: :post %></td>
<td><%= link_to 'Show', topic %></td>
<td><%= link_to 'Edit', edit_topic_path(topic) %></td>
<td><%= link_to 'Destroy', topic, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>

这是我的 Controller :

def upvote
@topic = Topic.find(params[:id])
@topic.votes.create
#redirect_to topics_path
respond_to do |format|
format.html { redirect_to topics_path }
format.js
end
end

这是我的 upvote.js.erb:

    $('#ajaxed').text('<%=pluralize(topic.votes.count, "vote")%>');

顺便说一句,我在 upvote.js.erb 上执行的任何其他形式的 javascript 或 jquery 似乎都可以工作,它只是不会更新我的“#ajaxed”范围。我还尝试了 .html 甚至直接 js document.getElementById("ajaxed").innerHTML = '<%=pluralize(topic.votes.count, "vote")%>',这给了我不需要的结果。任何帮助将不胜感激。谢谢!!!

最佳答案

也许您需要在 upvote.js.erb 中使用 @topic 而不是 topic。但随后您将更改所有$("#ajaxed")。您需要设置特定于各个主题的 DOM id。

关于Javascript 不会更新 div Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com