0

现在世界充满矛盾,现在我在 Rails 4 中体验它。

<%= content_tag_for :tr , @person.products do |i| %>
  <td>
    <%= i.id %> //Line 1
    <div class="editform hide">
    <%= i.id %> //Line 2
    </div>
  </td>
<% end %>

第 1 行的输出随着循环迭代而变化,但第 2 行的输出是恒定的并且不会改变(其值是第一次迭代的值)。伙计们,这里发生了什么?

更新:

output of line1: 9 , 10 , 11 ,12
output of line2: 9 , 9 , 9 , 9

更新2: 我刚刚意识到问题来自与jquery popover相关的editform类。当我更改那个div的类名时,问题就解决了。这是我渲染弹出框的代码:

$(function () {
  $('.label-with-popover-edit').popover({ 
    html : true,
    content: function() { return $(".editform").html(); } , 
    placement:  'top'
  });

UPDATE3: 我刚刚发现了其他东西。如果我删除了隐藏类并让 div 可见,那么页面上的输出不等于弹出窗口上的输出!!!!我确定 jquery 是问题的根源。

4

1 回答 1

0

我发现了这个错误,加载页面后,有一堆具有相同类的 div 并且 jquery popover 加载了第一个。

于 2013-08-04T20:16:11.407 回答