1

我在我的文档中添加了评论。提交评论时,评论通过 AJAX 部分加载/更新,其中包含新评论。在这个部分内部是一个链接,用于加载第二个部分(也由 ajax 加载),以提交对评论的评论(即评论子项)。

添加新评论时,部分会按预期重新加载新评论,但是如果不重新加载页面,加载第二个部分的链接将不起作用。我相信我需要将第一个部分委托给文档中的 div 或元素,以便 javascript(加载第二个部分)加载并执行,我该如何实现?这是我的设置:

创建.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}

显示.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

4

1 回答 1

0

我能够通过结合我的两个 js.erb 文件来解决这个问题:

创建.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 元素(不在部分内部)(例如“body”),以便在加载的部分中包含(和可执行)所有其他 javascript。对此的任何解决方法将不胜感激。

于 2013-07-31T10:14:53.930 回答