1

Google Maps API V3のMarkerClustererライブラリを使用して、近くのマーカーを1つのマーカーにグループ化します。ユーザーがクラスターマーカーをクリックすると、そのクラスターマーカーの横にdivが表示されます。ここで、クラスターマーカーをクリックした後、ポップアップしたdivを閉じるために、彼がマップをクリックできるようにします。

問題:マップにを追加した後google.maps.event.addListener(map, 'click', function(){})、ユーザーがクラスターマーカーをクリックしてポップアップdivを開いても、何も起こりません!! クラスターマーカーのクリックイベントによってdivがポップアップしたと思いますが、クリックイベントもマップに伝播し、マップのクリックリスナーがポップアップを閉じます。

jQueryを使用できればいいのですが、オブジェクトevent.stopPropagation()はどこで入手できますか?event

どうすればこの問題を解決できますか?クリックがクラスターマーカーを介してマップに伝播するのを防ぐにはどうすればよいですか?うまくいけば、ソリューションはクロスブラウザ互換です。

JSコード

clusterclickListener = google.maps.event.addListener(mc, "clusterclick", function (cluster) {
    $('#content_container').show();
});

google.maps.event.addListener(map, 'click', function() {
    $('#content_container').hide(); 
});
4

1 に答える 1

4

うーん。私はこれをテストしたところ、すべてがうまくいきました。私の唯一のアドバイスは、divが正しいhtml / css / positionを持っているかどうかを確認することです。これは、単にマップで覆われている可能性があるためです。

イベントオブジェクトは、ハンドラー関数でデフォルトでアクセスできます。イベントオブジェクトにアクセスする場合は、「event」を使用してアクセスするだけなので、event.stopPropagation()が機能するはずです。ハンドラー関数に引数として「event」を渡すと、stopPropagationメソッドを持たないカスタムのGoogleマップクリックイベントが発生することに注意してください。

于 2012-04-04T07:49:21.500 に答える