【问题标题】:update every elements replaceWith partial rails 3.1更新每个元素 replaceWith partial rails 3.1
【发布时间】:2012-01-28 17:39:34
【问题描述】:

我有 3 个元素和一个带按钮的表单:

<input type="submit" value="Follow All" class="follow_all">

<div id="page"> 
<div id="page01" class="pages"> page 1 </div>
<div id="page02" class="pages"> page 2 </div>
<div id="page03" class="pages"> page 3 </div>
</div>

当我点击提交按钮时,表单动作,调用文件create.js.erb

在这个文件中我有:

var $divs = ("#page .pages");
$($divs).replaceWith("<%= escape_javascript(render(:partial => 'replace_all_divs'))%>");

在部分 _replace_all_divs.html.erb 我有:

<% @posts.each do |post| %>
<%= post.id   %>
<% end %>

我想用post id替换每个div内容(第1页、第2页和第3页)

问题是我为每个 div 获得了 post.id 的 3 个 id:

我得到了一个不好的结果:(:

<div id="page"> 
<div id="page01" class="pages"> 123 </div>
<div id="page02" class="pages"> 123 </div>
<div id="page03" class="pages"> 123 </div>
</div>

我想得到下一个结果:

<div id="page"> 
<div id="page01" class="pages"> 1 </div>
<div id="page02" class="pages"> 2 </div>
<div id="page03" class="pages"> 3 </div>
</div>

【问题讨论】:

    标签: jquery ruby-on-rails ajax ruby-on-rails-3 partial


    【解决方案1】:

    当您使用"#page .pages" 作为选择器时,replaceWith 方法会被执行 3 次,每次都包含由 _replace_all_divs.html.erb 生成的内容(一个连接所有你的 ids => "123")。

    您最好使用"#page" 作为选择器,并将其内容替换为新的div。

    create.js.erb

    $('#page').empty().append('<%= render(:partial => 'replace_all_divs')%>');
    

    _replace_all_divs.html.erb

    <% @posts.each do |post| %>
     <div id="page<%= post.id.to_s.rjust(2, '0') %>" class="pages"><%= post.id %></div>
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      相关资源
      最近更新 更多