我有以下代码。在出现的第一个模态中,我列出了所有用户的图像。当他们点击其中一个图像时,它会触发第二个模态,我希望图像的ID可供我使用。但它总是以最后一张图片的身份回归。
<div id="firstModal" class="reveal-modal" data-reveal>
<% if signed_in? %>
<h4>Your Images</h4>
<div class="dashboard-panel">
<% @assets.each do |asset| %>
<a href="#" data-reveal-id="secondModal" onclick="<% @selected_asset = asset.id %>"><%= image_tag asset.file_name.url(:dashboard).to_s %></a>
<%= asset.id %>
<% end %>
</div>
<% else %>
You don't have any images.
<% end %>
<a class="close-reveal-modal">×</a>
</div>
<div id="secondModal" class="reveal-modal" data-reveal>
<h2>This is a second modal.</h2>
<p>Asset id is <%= @selected_asset.inspect %></p>
<a class="close-reveal-modal">×</a>
</div>
我认为我的结构有问题,但我无法弄明白:(
答案 0 :(得分:0)
第二个模态的html只生成一次。 @selected_asset的值将是循环中最后一个资产的id。一种选择是为每个图像生成一个单独的模态,如下所示:
<% @assets.each do |asset| %>
<a href="#" data-reveal-id="secondModal-<%= asset.id %>Click</a>
<div id="secondModal-<%= asset.id %>" class="reveal-modal" data-reveal>
<h2>This is a second modal.</h2>
<p>Asset id is <%= asset.id %></p>
<a class="close-reveal-modal">×</a>
</div>
<% end %>
请注意,在模式的id中包含asset.id,因此它们都是唯一的