抓住“地图数据”点击

时间:2012-12-06 17:03:50

标签: javascript google-maps google-maps-api-3

我需要知道点击地图数据链接的时间(见图1,右下角)。 打开“地图数据”窗口时,它将被重叠元素隐藏(图像2)。因此,当我收到打开窗口的触发器时,我必须隐藏它们,并在它关闭时重新显示它们。

我试图捕捉地图画布下的所有点击事件,如下所示,但是当我点击“地图数据”时我没有被触发

$("googleMapCanvas a").click(function() {
        alert("link under map clicked");
        });

有什么想法吗?

图片1

Image 1

图片2

Image 2

更新

这是我在Christian回答后的功能代码

<div id="googleMapCanvas">
</div>

<div id="currentLocationBubbleContainer">
    ... 
</div>

<script>
$("#googleMapCanvas").on('click', 'a', function(event) {

     var host = event.target.host;      
     var isGoogleExternalLink = false;

     if (host != null && host.search(".google.") != -1 ){
             isGoogleExternalLink = true;
     }

     //It's not enough to check the innerHTML because it's content varies 
     //depending on the device langage, so in stead I check if it is not 
     //a click on the google logo, or on the terms of use which are external links
     if (event.target.innerHTML == "Map Data" || ! isGoogleExternalLink ){
             hideCurrentLocationBubble();
     }
     });

     //Close button of Map Data window
     $("#googleMapCanvas").on('click', 'img', function(event) {

         if (event.target.src == "https://maps.gstatic.com/mapfiles/transparent.png"){
             showCurrentLocationBubble();
         }
     });
</script>

1 个答案:

答案 0 :(得分:1)

你绑定.click()事件在哪里?默认情况下,不会委托,因此如果在调用代码时映射不存在,则不会绑定该事件。请尝试使用.on()

$("googleMapCanvas").on('click', 'a', function() {
    alert("link under map clicked");
});