我有一个记录列表显示为屏幕一侧的部分,可以过滤。而在另一边,我有一个手绘地图,这是一个背景图像的div。如何在地图上为每条记录设置一个图标,该图标仅在显示记录部分时显示?
索引页面如下所示:
<div class="map_container">
</div>
<div class="filter_options_container">
filter form stuff is here
</div>
<div class="venue_partials_container">
<%= render :partial => 'venue', :collection => @venues %>
<div class="clearall"></div>
<%= will_paginate @venues %>
<div class="venue_partial_button">
<%= link_to 'add a new venue', new_venue_path %>
</div>
</div>
<div class="clearall"></div>
感谢您的帮助。
答案 0 :(得分:0)
您需要在场地对象中添加一些方法或更改渲染方法,在某种程度上......好吧,只需输出一些javascript数据,如下一个场所:
<script type="text/javascript"><!--
data.push({
x: <%= this.x %>,
y: <%= this.y %>,
someOtherStuff: <%= this.stuff %>
});
--></script>
然后添加一个函数,它将迭代该数据数组:
function insertIconOnMap(mapItem){
var img = $("<img>", {
'class': "mapIcon",
'src': mapItem.someOtherStuff
}).css({
'left': mapItem.x,
'top': mapItem.y
});
$("#map").append(img);
}
data.each(insertIconOnMap);
和某些css一样
#map { position: relative; }
#map .mapIcon { position: absolute; }
如果你想以更优雅的方式...我忘记了我所知道的关于Ruby的一切:-D而且是你,谁为你的问题添加javascript
标签; - )