6

私はすでにグーグルドキュメントの指示の下でオーバーレイオブジェクトをサブクラス化しています、そして私のonAdd()関数は以下にリストされています:

MyOverlay.onAdd() {
    var div_parent = document.createElement("DIV");
    var div_child = document.createElement("DIV");
    div_child.innerHTML = "Click Me";
    div_parent.appendChild( div_child );
    this.getPanes().overlayLayer.appendChild(div_parent);
    var this = that;
    google.maps.event.addDomListener( div_parent, 'click', function(){
        google.maps.event.trigger(that, 'click'); // from [http://stackoverflow.com/questions/3361823/make-custom-overlay-clickable-google-maps-api-v3]
        alert("Clicked");
    } );

}

私のコードはIEでのみ正常に機能しますが、FirefoxとChromeでは、クリックイベントはトリガーされなくなります。

では、どのように問題を解決するのでしょうか?

4

3 に答える 3

8

overlayLayer mapPanesを使用する代わりに、overlayMouseTargetを使用する必要があります。

参照:http ://code.google.com/apis/maps/documentation/javascript/overlays.html#CustomOverlays

于 2011-09-28T13:30:22.590 に答える
4

これは古い投稿であることは承知していますが、疑問に思っている場合は、ここに解決策があります。

上記のコードでは、オーバーレイ関数を次のように変更する必要があります。

this.getPanes().overlayLayer.appendChild(div_parent);

に:

this.getPanes().overlayMouseTarget.appendChild(div_parent);

于 2012-06-12T12:49:30.217 に答える
1

また、オーバーレイ ペインを使用している場合でも、クリック イベントはデスクトップでキャプチャされますが、タッチ イベントを機能させるには、マウス ターゲット ペインが必要です。

于 2012-07-16T20:39:42.040 に答える