3

Google MapsAPIV3用のMarkerclusterプラグインを使用しています。ユーザーがクラスターアイコンをクリックしたときにクリックイベントにアクセスしたい。私が来ることができる最も近いのは

JSコード

google.maps.event.addListener(mc, "clusterclick", function (cluster) {
    event.stopPropagation();
});

問題: event.stopPropagation()この方法はChromeでのみ機能し、FirefoxやIEでは機能しません。オブジェクトが渡された場合にのみ機能します。eventオブジェクトは、次のように関数にパラメーターとして追加されます。

$("#div").click(function(event) { 
    event.stopPropagation();
}

ただし、MarkerClustererで作成したクラスターアイコンのDOM要素がわからないので選択できません!! 私は何をすべきか?

4

2 に答える 2

3

こちらをご覧ください:https ://developers.google.com/maps/documentation/javascript/events#EventArguments

google.maps.event.addListener(map、'click'、function(event){placeMarker(event.latLng);});

イベントcalbackの最初のパラメーターは、イベントオブジェクトです。あなたの場合、それは次のようになります:

google.maps.event.addListener(mc, "clusterclick", function (cluster) {     
    cluster.stopPropagation();     
});

これはカスタムイベントであり、プログラマーはイベントオブジェクトをパラメーターとして渡さなかったため、解決策はそれを自分で実装することです。

http://code.google.com/p/google-maps-utility-library-v3/source/browse/trunk/markerclustererplus/src/markerclusterer.js?r=362の150行目と151行目:

から:

google.maps.event.trigger(mc, "click", cClusterIcon.cluster_);
google.maps.event.trigger(mc, "clusterclick", cClusterIcon.cluster_); // deprecated name 

に:

google.maps.event.trigger(mc, "click", e, cClusterIcon.cluster_);
google.maps.event.trigger(mc, "clusterclick", e, cClusterIcon.cluster_); // deprecated name 

e3番目のパラメータとしてに注意してください。これは、 139行目のこの2行を呼び出す元のイベントのイベントオブジェクトです。

google.maps.event.addDomListener(this.div_, "click", function (e) {
于 2012-04-04T22:55:03.200 に答える
1

を使ってみることができますreturn false;。これにより、イベントのバブリングとデフォルトの動作の両方が停止します。ですから、特定のケースで使用できるかどうかはわかりません。

アップデート

clusterclickイベントは非推奨ですclickイベントを使用する必要があります。

.stopPropagtionとの両方をすでに試しました.cancelBubble = trueか?

于 2012-04-04T22:40:00.000 に答える