是否可以从记录字段填充javascript属性?

时间:2011-02-20 00:28:06

标签: javascript ruby-on-rails partial

我有一个场地记录表,它在索引页面上显示为部分记录。是否可以通过从场地记录中获取的整数字段填充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 %>

非常感谢任何帮助,非常感谢!

2 个答案:

答案 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";