2014-04-20 58 views
3

使用谷歌地圖V3如何檢測按鈕點擊谷歌地圖infowindow

我想添加一個按鈕到我的谷歌地圖infoWindow。信息窗口和按鈕按預期顯示。我正在嘗試捕獲按鈕的onclick事件。這是我到目前爲止:

var contentBtn = '<p><button id="marker'+numby+'" class="iwLink" href="#" >Done</button></p>'; 
     google.maps.event.addListener(marker, 'click', function() { 
      infowindow.setContent(address+contentBtn); 
      infowindow.open(map, this); 
     }); 

     google.maps.event.addDomListener(contentBtn, 'click', function() { 

      alert($(this).attr('id')); 
     }); 

infoWindow按預期顯示,以及按鈕。但是,在控制檯日誌中,我也收到以下錯誤:

Uncaught TypeError: Cannot read property 'click' of undefined
This appears to be caused by the line google.maps.event.addDomListener(contentBtn, 'click', function()

回答

2

該按鈕不會添加到DOM,直到infowindow完成呈現。直到​​觸發後,才能使用getElementById(或jquery等價物)找到它。

var contentBtn = '<p><button id="marker'+numby+'" class="iwLink" href="#" >Done</button></p>'; 
    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(address+contentBtn); 
     infowindow.open(map, this); 
    }); 
    google.maps.event.addListener(infowindow, 'domready', function() { 
     google.maps.event.addDomListener(contentBtn, 'click', function() { 

     alert($(this).attr('id')); 
     }); 
    }); 
+0

謝謝。現在我得到'Uncaught TypeError:undefined不是一個函數',我追溯到'google.maps.addListener(infowindow,'domready',function()....' –

+0

應該是google.maps.event。的addListener() – geocodezip