为什么这个简单的div会改变对象值?

时间:2013-08-02 19:16:55

标签: javascript jquery ruby-on-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

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

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

UPDATE3: 我刚刚找到了别的东西。如果我删除了隐藏类并让div可见,那么页面上的输出就不等于popover上的输出!我确信jquery是问题的根源。

1 个答案:

答案 0 :(得分:0)

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