我有一个场地记录表,它在索引页面上显示为部分记录。是否可以通过从场地记录中获取的整数字段填充javascript中的.left和.top值?
此外,如何为每个部分运行显示的脚本,因为它当前仅适用于生成的第一个部分。
Venue partial:
<%= link_to venue do %>
<div class="venue_partial">
<div class="venue_icon">
<%= image_tag venue.venuetype.photo.url(:thumb), :class => 'image' %>
</div>
<span class="venue_partial_name"><%= venue.name %></span>
<span class="venue_area_and_type"><%= venue.venuetype.name %></span>
<span class="venue_area_and_type"><%= venue.area.name %></span>
</div>
<div id="venue_map_icon" style="position:absolute;"></div>
<script>
document.getElementById("venue_map_icon").style.left= "300px";
document.getElementById("venue_map_icon").style.top= "310px";
</script>
<% end %>
非常感谢任何帮助,非常感谢!
答案 0 :(得分:1)
这两项都是肯定的。您现在遇到的问题是您在javascript中通过ID引用元素,但该ID不是唯一的,因此javascript找到此ID的第一个实例并将规则应用于它,而不是其他div。要解决此问题,您需要使用唯一ID:
<%= link_to venue do %>
<div class="venue_partial">
<div class="venue_icon">
<%= image_tag venue.venuetype.photo.url(:thumb), :class => 'image' %>
</div>
<span class="venue_partial_name"><%= venue.name %></span>
<span class="venue_area_and_type"><%= venue.venuetype.name %></span>
<span class="venue_area_and_type"><%= venue.area.name %></span>
</div>
<div id="venue_map_icon_<%= venue.id %>" style="position:absolute;"></div>
<script>
document.getElementById("venue_map_icon_<%= venue.id %>").style.left= "<%= venue.left %>px";
document.getElementById("venue_map_icon_<%= venue.id %>").style.top= "<%= venue.top %>px";
</script>
<% end %>
答案 1 :(得分:0)
当然,它只需要像在HTML中一样输出:
document.getElementById("venue_map_icon").style.left = "<%= venue.somevalue %>px";