jquery - gmaps4rails 按 id 选择标记

标签 jquery ruby-on-rails-3 google-maps google-maps-api-3 gmaps4rails

我想在用户将鼠标悬停在给定链接上时打开一个信息窗口。

我已经给出了所有标记 ID,并且链接具有相同的 ID。我可以让悬停打开一个信息窗口,我只是不确定如何让它根据链接的 id 和正确的标记打开它。

Js:它会在 map 上弹出一个信息框,只是不确定如何在 map 上指定正确的 ID。

  <script type="text/javascript">
    $(document).ready(function() {
      Gmaps.map.callback = function() {
        $(".items li a").on("mouseover", function() {
          //alert(this.id);
          var marker = Gmaps.map.markers[0]; //this.id
          var map         = Gmaps.map.serviceObject
          marker.infowindow.open(map, marker.serviceObject);
        });
      }
    });
  </script>

标记:

@json = @events.to_gmaps4rails do |event, marker|
  marker.infowindow render_to_string(:partial => "/events/hover", :locals => { :event => event })
  marker.title   "#{event.place.name}"
  marker.json({ :id => event.id })
end

链接:

<%= link_to event.place.name, pub_path(event.place), id: event.id %>

最佳答案

你很接近。您必须遍历所有标记才能找到正确的标记。使用underscore.js你可以这样做:

Gmaps.map.callback = function() {
  $(".items li a").on("mouseover", function() {

    //id of selected marker
    i = $(this).attr("id");
    marker = _.find(Gmaps.map.markers, function(obj) { return obj.id == i })
    var map         = Gmaps.map.serviceObject          
    marker.infowindow.open(map, marker.serviceObject);
  });
}

关于jquery - gmaps4rails 按 id 选择标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051368/

相关文章:

ruby-on-rails-3 - Rails 重定向问题 - Hartl 的 Rails 教程 10.2.3

javascript - 通过 javascript 将用户可输入的文本存储到隐藏表单中是否危险?

javascript - 从 View 发送到 Web api Controller 时,数据始终为空

ruby-on-rails - Rails 使用博客和帖子构建方法嵌套资源

ruby-on-rails - rbenv:在同一台机器上并排安装 32 位和 64 位版本的 ruby

java - 如何将地理点经度+纬度转换为两倍?

java - 为什么这条谷歌地图折线没有删除?

javascript - 谷歌地理编码 - 关闭/循环问题

jquery - 如何在jQuery Expander插件中使用jQuery的 "slideDown"和 "slideUp"效果?

javascript - Bootstrap 将 glyphicon 包装在导航栏的第二行