现在世界充满矛盾,现在我在 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 是问题的根源。