2012-09-27 54 views
0

所以右擊創建的標記,但是當我在標記上點擊信息窗口沒有的顯示屏。評論警報給出的座標,雖然。我可能做錯了什麼。邏輯或語法是否有問題?我找不到解決這個問題的方法。這裏是我的代碼:信息窗口不上單擊事件顯示

// create marker on right click 
      google.maps.event.addListener(map,'rightclick', function(e) { 

        marker = new google.maps.Marker({ 
        position: e.latLng, 
        map: map 
       }); 

       alert('coord: ' + marker.getPosition().toUrlValue(3)); 

      }); 

      // display info window on marker click 
      google.maps.event.addListener(marker,'click', function(event){ 

       infowindow = new google.maps.InfoWindow({ 
       map:map, 
       content:"coordinates:"+event.latLng.toUrlValue(), 
       position:event.latLng 
       }); 

       infowindow.open(map,marker); 
      }); 

回答

1

您應該將第二個事件在第一個相同的背景:

google.maps.event.addListener(map,'rightclick', function(e) { 
    var marker = new google.maps.Marker({ 
     position: e.latLng, 
     map: map 
    }); 

    google.maps.event.addListener(marker,'click', function(event){ 
     infowindow = new google.maps.InfoWindow({ 
      map: map, 
      content: "coordinates:"+event.latLng.toUrlValue(), 
      position: event.latLng 
     }); 

     infowindow.open(map, marker); 
    }); 
}); 

希望這有助於。

+0

這就是我應該做的。你能解釋爲什麼我應該嵌套它嗎?paolo Rodrigues –

+0

僅僅因爲標記變量在創建的上下文之外無法訪問。 –

0

您沒有通過調用infowindow對象的open()來打開infowindow。你每次點擊標記時都要進行初始化。

修訂

infowindow = new google.maps.InfoWindow({ 
    map:map, 
    content:"coordinates:"+event.latLng.toUrlValue() 
}); 

// display info window on marker click 
google.maps.event.addListener(marker, 'click', function(event) { 
    infowindow.setPosition(event.latLng); 
    infowindow.open(marker); 
}); 

試試這個代碼

https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows

+0

上面編輯了我的代碼,但仍然沒有工作。 –

+0

已更新的答案請檢查它 – Pratik

+0

我應該嵌套單擊事件內右鍵單擊一個。 –