1

「マウスオーバー」にイベントリスナーがあり、それが機能し、infoWindow に正しいテキストを表示しますが、x を押さない限り、これらの infoWindow は消えません。ユーザーがマウスを離した後、それらを非表示にしたい。以下はコードです。

ありがとう!

iPark.makeMarker = function (lat, long, street, location, description ) {
  var myLatlng = new google.maps.LatLng(lat, long)
  var marker = new google.maps.Marker({
    position: myLatlng,
    title: 'Click to Zoom'
  });
  marker.setMap(this.map)

  google.maps.event.addListener(marker, 'click', function() {
    iPark.map.setZoom(18);
    iPark.map.setCenter(marker.getPosition());
    google.maps.event.addListener(marker, 'click', function() {
      iPark.map.setZoom(13)
      iPark.map.setCenter(37.7833, -122.4167)
    })
  });

  google.maps.event.addListener(marker, 'mouseover', function() {
    iPark.infoWindow(street).open(iPark.map, marker)
  });
  google.maps.event.addListener(marker, 'mouseout', function() {
    console.log("hello")
    iPark.closeinfoWindow
  });
}

iPark.infoWindow = function(street){
  return new google.maps.InfoWindow({
    content: String(street)
})

iPark.closeinfoWindow = InfoWindow.close()

};
4

2 に答える 2

4

infoWindow をマーカーのプロパティとして保存します。

google.maps.event.addListener(marker, 'mouseover', function() {
    if(!this.get('iw'))this.set('iw',iPark.infoWindow(street));
    this.get('iw').open(iPark.map, this);
  });

その後、後でアクセスできるようになります。

google.maps.event.addListener(marker, 'mouseout', function() {
    this.get('iw').close();
  });
于 2013-10-20T01:52:03.147 に答える
0

これは間違っているようです。

  google.maps.event.addListener(marker, 'mouseout', function() {
    console.log("hello")
    iPark.closeinfoWindow
  });

これはうまくいくかもしれません(報告された動作中の「mouseout」機能に基づいて、テストされていません):

  google.maps.event.addListener(marker, 'mouseout', function() {
    iPark.infoWindow(street).close();

  });
于 2013-10-20T01:20:35.023 に答える