Map Data リンクがいつクリックされたかを知る必要があります (画像 1、右下隅を参照)。[マップ データ] ウィンドウを開くと、オーバーレイ要素によって非表示になります (画像 2)。そのため、ウィンドウを開くトリガーを受け取ったときに非表示にし、閉じたときに再表示する必要があります。
以下のように、マップ キャンバスの下のすべてのクリック イベントをキャッチしようとしましたが、[マップ データ] をクリックしてもトリガーされません。
$("googleMapCanvas a").click(function() {
alert("link under map clicked");
});
何か案は?
画像1
画像2
アップデート
クリスチャンの答えの後の私の機能コードは次のとおりです
<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>