我在文档中添加了评论。提交评论时,评论会通过AJAX部分加载/更新新评论。在这部分内部是一个链接,加载第二个部分(也由ajax加载),提交评论评论(即评论儿童)。
添加新注释时,部分会按预期重新加载新注释,但是加载第二个部分的链接在不重新加载页面的情况下不起作用。我相信我需要将第一个部分委托给文档中的div或元素,以便javascript(加载第二部分)加载并执行,我该如何实现?这是我的设置:
Create.js.erb:
$('#ajax').html("<%= j comments(@document, @current_user) %>");
在评论控制器中创建操作
def create
....
respond_to do |format|
format.js
end
end
在评论部分内部,可以加载第二部分,提交儿童评论的表格(即评论评论)。
链接以触发第二个部分/离开评论子项(位于第一部分内)
= link_to "Reply", {:controller => :documents, :action => :show}, { :method => :get, :remote => true}
Show.js.erb:
$('#comment_child_form_<%= @comment_parent.id %>').html("<%= j comment_child_form(@current_user, @document, @comment_parent) %>");
在文档控制器中显示操作
def show
....
respond_to do |format|
format.html
format.js
end
end
注意:我使用的是Rails 3.2.12
答案 0 :(得分:0)
我能够通过组合我的两个js.erb文件来解决这个问题:
create.js.erb
$('#ajax').html("<%= j comments(@document, @current_user) %>");
$('.reply-btn').click(function(){
$('#comment_child_form_<%= @comment_parent.id %>').html("<%= j comment_child_form(@current_user, @document, @comment_parent) %>");
});
但是,我仍然不确定如何使用jquery委托/追加到现有的固定html元素(不在partial之内)(例如'body'),以便所有其他javascript包含(和可执行)加载部分。任何解决方法都将非常感谢。