2

Googleマップ(API v3)のカスタムオーバーレイでマウスオーバーイベントをリッスンすることは可能ですか?簡単な例:

function HWPMarker(map, coords, text) { […] }
HWPMarker.prototype = new google.maps.OverlayView();
HWPMarker.prototype.draw = function() { […] }

HWPMarker.prototype.onAdd = function() {

  $(this.getPanes().overlayLayer).append(this.marker); // this.marker is a div

  // THIS IS WHERE I TRY TO LISTEN TO THE MOUSEOVER EVENT
  google.maps.event.addListener(this, 'mouseover', function(){ alert('mouseover') });

}

私は何か間違ったことをしていますか?または、カスタムオーバーレイでマウスオーバーをリッスンすることはできませんか?

4

1 に答える 1

6

この回答は、Maps API v3 がマウス イベントを受け入れなくなったことを指摘しています。そのため、DOM 要素を追加してoverlayMouseTarget、Google Maps DOM リスナーを使用する必要があります。これがどのように機能するかです:

HWPMarker.prototype.onAdd = function() {
  this.getPanes().overlayMouseTarget.appendChild(this.marker); // this.marker = my dom el
  google.maps.event.addDomListener(this.marker, 'mouseover', function(){ alert('mouseover') });
}
于 2012-12-17T11:13:40.463 に答える