我有一个场馆表,其中每个场馆都属于一个区域,我正在尝试学习一些关于jQuery的知识,以便在我的应用中使用。我在会场索引页面上有一个过滤表单,按面积过滤会场部分。我也有一个.png地图图像,显示所有的地区,并有绝对定位放置的图标,显示在这些地区的场馆在哪里。
我的index.html.erb中的jQuery代码更改了地图图像:
<script type="text/javascript">
$(document).ready(function() {
$("form").submit(function() {
if ($("#area-1").is(':checked'))
$(".map_container").addClass("area1");
else if ($("#area-2").is(':checked'))
$(".map_container").addClass("area2");
else if ($("#area-3").is(':checked'))
$(".map_container").addClass("area3");
else
nil;
});
});
</script>my venue partial中的jQuery代码显示地图图标:
<script type="text/javascript">
document.getElementById("venue_map_icon_<%= venue.id %>").style.left= "<%= venue.iconleftpx %>px";
document.getElementById("venue_map_icon_<%= venue.id %>").style.top= "<%= venue.icontoppx %>px";
</script>有没有办法使索引页面中的代码同时改变地图图像中的部分代码?
所以如果选择了area1,那么地图图像就会改变,但分词中的代码行也会改变,当前的代码行是"<%= venue.iconleftpx %>px“和"<%= venue.icontoppx %>px”,而不是"<%= venue.iconleftpx2 %>px“和"<%= venue.icontoppx2 %>px”。这样,随着地图图像的改变,过滤的场馆图标的位置也会随之改变。或者有没有可能有两个代码块,并根据在过滤器表单中选择的内容更改读取的代码块?
感谢任何帮助,如果我的问题是虚荣的或缺乏的,我很抱歉,我是超级新手。
发布于 2011-03-10 17:49:14
我并没有完全理解您的意思,但我认为您可以同时加载地图和表,并在用户提交时使用ajax-get-request从数据库中提取地图图标的坐标。
在服务器端,您可以只添加一个JSON回复到例如show操作,并让rails将地点(或仅坐标)呈现为JSON。或者,您可以有一个特殊的操作,它接受一个venue-id:s数组并返回一个坐标数组。
在客户端,您将使用jQuery.ajax()-method中的成功或完成函数来使用您收到的JSON数据移动地图图标。
Information about jQuery ajax (jQuery API)
https://stackoverflow.com/questions/5253451
复制相似问题