2016-09-21 12 views
0

私はマップページ上のリンクをクリックすると(マーカーではない)、インフォメーションウィンドウを開く必要があります。ここに私のコードは、これまでマーカーのIDからマーカーのIDを取得する

var marker = new MarkerWithLabel({ 
       map: resultsMap, 
       id: label, 
       position: latlng, 
       title: "Address", 
       // radius: int_radius , 
       draggable: false, 
       labelAnchor: new google.maps.Point(10, 35), 
       labelContent: label, 
       labelClass: "labels", 
       labelInBackground: false, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       icon: image, 
       customInfo: "dynamic data for each marker" 
     }); 

そして、私はマーカーを格納する配列を使用することはできません私の状況では

function bindInfoWindow(resultsMap, marker, infoWindow) { 
    google.maps.event.addListener(marker, 'click', 
     function(){ 
      infoWindow.setContent(marker.customInfo); 
      infoWindow.open(resultsMap,marker); 
     }); 

     $(document).on('click','.store-title', function(){ 
      var linkId = $(this).attr('id'); 
      infoWindow.setContent(marker.customInfo); 
      infoWindow.open(resultsMap,marker); 

     }); 
} 

関数を呼び出すことです。以下のような条件を使ってmarker.customInfoを取得する方法はありますか?注意してください私はマーカーをクリックすると動作します。私は後者のonclick機能のためにそれが必要です。

infoWindow.setContent(marker.customInfo where marker.id==linkId); 
+0

誰かが私を助けることができます – cmit

答えて

0

これあなたが現在それを持っているとして、あなたのbindInfoWindow内のそれを維持、うまくいくかもしれない:私はあなたが多分クリックイベントハンドルへのデータのパラメータとしてを渡しますが、よ

$(document).on('click','.store-title', function() { 
    var linkId = $(this).attr('id'); 
    if (linkId == marker.id) { 
     google.maps.event.trigger(marker, 'click'); 
    } 
}); 

お知らせそれをする必要はありません。 - それは必要ないと思われます。

次に、マーカーのクリックハンドラーに既に入っているコードを繰り返すのではなく、そのマーカーをクリックするだけです。

各マーカーに追加しているidのプロパティは、あなたのリンクで読んでいる 'id'属性と同じであるとします。そうでない場合、あなたが確認できるマーカーとリンクにいくつかの同一の特性を持たせることができます。

+0

ありがとう!あなたは素晴らしいです。私はこれを信じることができない。あなたを愛して – cmit

関連する問題