我需要知道点击地图数据链接的时间(见图1,右下角)。 打开“地图数据”窗口时,它将被重叠元素隐藏(图像2)。因此,当我收到打开窗口的触发器时,我必须隐藏它们,并在它关闭时重新显示它们。
我试图捕捉地图画布下的所有点击事件,如下所示,但是当我点击“地图数据”时我没有被触发
$("googleMapCanvas a").click(function() {
alert("link under map clicked");
});
有什么想法吗?
图片1
图片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>
答案 0 :(得分:1)
你绑定.click()
事件在哪里?默认情况下,不会委托,因此如果在调用代码时映射不存在,则不会绑定该事件。请尝试使用.on()
:
$("googleMapCanvas").on('click', 'a', function() {
alert("link under map clicked");
});