2011-06-27 21 views
5

Googleマップ(v3)に20個のマーカーがあります。私はinnerHTMLとしてボックスを埋めるためにテキストを含むdivで作成された単一のインフォボックスインスタンスを持っています。Googleマップv3インフォボックスイベントリスナーを追加

インフォボックスをクリックして別のページに移動したいのですが、インフォボックスやその内部のdivをクリックイベントに対応させることができません。

イベントリスナーを追加しようとしましたが、domListenerを追加しようとしましたが、動作することができません。ここで

は私のコード、私は他のさまざまなオプションを試してみた

//setting up the infobox 

    var infobox = new InfoBox({ 
      disableAutoPan: true 
      ,isHidden:false 
      ,pixelOffset: new google.maps.Size(-10, -10) 
      ,closeBoxURL: "" 
      ,pane: "mapPane" 
      ,enableEventPropagation: true 
     }); 

    //setting up the div 

    var boxText1 = document.createElement("div"); 
     boxText1.id = "boxText1"; 
     boxText1.className = "labelText"; 
     boxText1.innerHTML = title1;//this is created earlier 

    //the marker event listener - the marker and coordinates are also set up earlier 
     google.maps.event.addListener(_marker1, 'click', function() { 
     infobox.content_ = boxText1; 
     infobox.position_ = mkLatLng1; 
     infobox.open(map); 
    }); 

     //so far everything ok. When the user clicks the marker the infobox pops up - but..... 

    google.maps.event.addDomListener(boxText1,'click',function(){ alert('clicked!') });//doesn't work 

からいくつか抜粋ですが、彼らは暗闇の中ですべてのショットをしています。 infoboxでクリックイベントを聞くにはどうすればよいでしょうか?

ありがとう

+0

小さなクロスは、infoboxを閉じますか? – ianbarker

+0

あなたのinfoboxのテキストはhtmlの権利を含むことができますか?それでdivを作って、そのdivのクリックを聞くことができます。 –

+0

十字架はありません。情報ウィンドウについて考えていますか? –

答えて

11

問題が解決しました。インフォボックスのオプションでは、私はそれを持っていたとして、あなたは

pane: "mapPane" 

pane: "floatPane" 

とNOTを持っていることを確認する必要があります。今はうまく動作します。

興味深いことに、Googleドキュメントは

Set the pane to "mapPane" if the InfoBox is being used as a map label. 

彼らは何を言っていないが、マップのラベルがクリック可能になりたい場合は、このオプションを使用することができないということであると言います。

関連する問題