Google Maps V3 APIにInfoboxプラグインを使用しています(http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference .html)地図をクリックするとInfoboxを閉じる
マップ上のようにユーザーがインフォボックスの外をクリックすると、情報があまりにも近くにありますか?
Google Maps V3 APIにInfoboxプラグインを使用しています(http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference .html)地図をクリックするとInfoboxを閉じる
マップ上のようにユーザーがインフォボックスの外をクリックすると、情報があまりにも近くにありますか?
http://code.google.com/apis/maps/documentation/javascript/events.html#EventListeners
あなたがコードはここで見つける適応できるのaddListener()を使用したいと思うでしょう
:
google.maps.event.addListener(_point.popup, 'domready', function() {
//Have to put this within the domready or else it can't find the div element (it's null until the InfoBox is opened)
$(_point.popup.div_).hover(
function() {
//This is called when the mouse enters the element
},
function() {
//This is called when the mouse leaves the element
_point.popup.close();
}
);
});
Src: Google Maps API v3 Event mouseover with InfoBox plugin
あなたはこれでマップのクリックを検出することができます:あなたはグローバル変数として、あなたの情報ウィンドウを持っている、または少なくとも一つの変数それを保持している場合、それは実際に道簡単です http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html
これ多分便利なあなたのために...
var inside = false;
$('#foo').live('mouseenter',function(){
inside=true;
}).live('mouseleave', function(){
inside=false;
});
$("body").mouseup(function(){
if(!inside) $('#foo').remove();
});
が、私はjQueryのから ')(' .live使用するか、 'google.maps.event.addListenerを(使うべき:-)すべてだあなたはインフォボックス
google.maps.event.addListener(map, 'click', function() { if(infowindow){ infowindow.close(); } });
を参照する単一のポイントを意味します) 'GoogleマップAPIから?両方のリスナーは同じですか? – Nyxynyxx
.live()はjqueryのfuncですので、最後のjquery jsファイルをインポートした場合と同じように使用できます。 –
:
google.maps.event.addListener(map, 'click', function() {
});
インフォボックスのAPI便利な場所に追加したい単一の情報ボックスを表します。
編集:だけ明確にする:それはは、例えばwindow.myInfoBox
すべきではありません。グローバルで、私は
ページのすべての(10)マーカーにリスナーを追加できますか?または、それぞれ個別に追加する必要がありますか? – Nyxynyxx
上記のコードは.hoverを使用する代わりに.live( 'クリック' ... 編集:ちょうどあなたが地図をクリックしたときにそれがほしいと気づいた、あなたは上記のコードを変更する必要があります – Eddie
マップ内のリスナーをクリックするだけで、infoboxをループしてclose()メソッドを適用するだけです。 – Eddie