这是我试图淡出的div的一部分。
<% @unconfirmed_sub_posts.each do |sub| %>
<div class = "unconfirmed_post" id = "unconfirmed_sub_post_<%=sub.id%>">
<table class = "table">
<tr>
<td id = "tablenoborder">
<%= link_to 'x', sub, method: :delete, class:"btn btn-danger btn-small", remote: true %>
</td>
请注意我放在div 上的 ID,并将 remote:true 添加到将其发送到销毁控制器操作的link_to。
在我的控制器中,这里是销毁操作。
def destroy
@sub_opp.destroy
respond_to do |format|
format.html { redirect_to sub_opps_url }
format.js
end
end
最后,在我的 destroy.js.erb 文件中:
$('#unconfirmed_sub_post_<%= @sub_opp.id %>').fadeOut(500);
该项目正在被删除,但不会淡出。 当我刷新页面时,div 消失了。Javascript控制台给了我这个错误:
DELETE http://localhost:3000/sub_opps/14 500 (Internal Server Error)
呈现的 HTML:
<div class = "unconfirmed_post" id = "unconfirmed_sub_post_14">
<table class = "table">
<tr>
<td id = "tablenoborder">
<a class="btn btn-danger btn-small" data-method="delete" data-remote="true" href="/sub_opps/14" rel="nofollow">x</a>
</td>
<td id = "tablenoborder">
<b>Basketball</b> at <b>depaul</b> on <b>Saturday, January 04, 2014</b> at <b> 4:00pm</b>.
</td>
</tr>
</table>
<!-- ANY RESPONSES TO PENDING SUB POSTS -->
<div class = "responses_to_posts">
<h5 class = "nomargintop">Responses</h5>
<p class = "nonheadingtext">There are no responses yet.</p>
</div>
</div>
知道为什么吗?谢谢
调用销毁的 JavaScript 在哪里? 淡出接受回调。尝试在回调中调用在服务器上调用销毁的代码。喜欢这个
$('#unconfirmed_sub_post_<%= @sub_opp.id %>').fadeOut(500, function(){
//put your code that calls the server to destroy here
});
在表单提交时,您需要先淡出(),然后在 fadeOut() 回调中允许提交表单。
问题是我的javascript文件在错误的视图子文件夹下。 我试图从用户仪表板中删除帖子,并将 js 文件放在用户目录中,而实际上它应该在帖子子文件夹中。
经验教训:确保 JS 文件位于要修改的对象的 View 文件夹下,而不是链接所在的位置。
谢谢你的帮助。