2

ユーザーが特定のリンクにカーソルを合わせたときに情報ウィンドウを開くようにしたいと考えています。

すべてのマーカー ID を指定し、リンクの ID は同じです。ホバーで情報ウィンドウを開くことができますが、リンクのIDと正しいマーカーに従って開く方法がわかりません。

Js: マップ上に情報ボックスが表示されますが、マップ上で正しい 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 %>
4

1 に答える 1

2

あなたは近くにいます。正しいマーカーを見つけるには、すべてのマーカーを反復処理する必要があります。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);
  });
}
于 2013-02-24T17:13:09.427 に答える