2011-04-19 50 views
3

我在Javascript中使用GoogleMaps API v3中的InfoWindow時遇到了問題。我已經成功創建了一個信息窗口,我可以在裏面設置任何內容,但是我想在裏面放一個超文本鏈接。它工作正常,我通常將標記放在setContent()方法中,並且鏈接正確顯示在窗口中。不幸的是,它不可點擊 - 它有一個正確的鏈接,但是當我點擊它時,什麼也沒有發生。當我點擊右鍵並選擇「在新窗口中打開」時,它工作得很好。任何人都可以在這裏找到問題嗎?Google Maps API - 無法點擊infowindow中的鏈接

var bubble; 

... some lines not related to the bubble ... 

bubble = new google.maps.InfoWindow({ 
    maxSize: new google.maps.Size(500,250) 
}); 

... other not related lines... 

然後我觸發它在創建標記(用於標記正常工作)事件:

bubble.setContent('<a href="http://www.google.com">LINK</a>'); 

google.maps.event.addListener(marker, 'click', function() { 
    bubble.open(map, marker) 
}); 

其中兩個「地圖」和「我如下得到一個代碼一樣簡單標記「就好了。

回答

1

我面臨同樣的問題。我相信這是由於infowindow內容以div的形式動態插入到DOM中導致的。我不知道爲什麼這到底會發生,但這裏是我如何解決它:

  1. 使用jQuery(我已經在使用此 - 如果你使用一個替代JS lib下,可能會有相當的溶液(S)爲相同)
  2. 更新也有一個類中定義的HTML鏈接(說類= 「infowindow_link」)
  3. 添加一個jQuery處理程序來捕捉鏈接,並按照它

    $(".infowindow_link").live('click', function(){ window.location.href=this.href; });

此「實時」調用跟蹤DOM的更改並將偵聽器附加到您插入的任何新鏈接。 window.location.href更新是跟蹤鏈接的正常行爲。

相關問題