マーカーと情報ウィンドウを含む Google マップを作成しています。各情報ウィンドウに、Google マップを拡大して中央に表示するズーム ボタンと、対応するマーカーを配置したいと考えています。
例については、このjsfiddleを参照してください。情報ウィンドウのコードは比較的単純です。
infoWindowArray[i] = new google.maps.InfoWindow({
position: latlng,
content: "<a href='/"+pitches[i].slug+".html'>"+pitches[i].name + " ("+ pitches[i].club+")</a><br /><img width='16' alt='Loupe' src='//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Loupe.svg/32px-Loupe.svg.png'/> <a id='zoom_"+pitches[i].id+"' href='javascript:void(0)'>Zoom In</a>"
});
ただし、私のスクリプトは Chrome では非常に気まぐれで、Firefox では常に失敗します。その理由は、1 回のクリックが何らかの理由で2 回発生するためです。したがって、この関数:
function setupZoomListeners(object, title, google_position, map){
google.maps.event.addListener(object, 'domready', function() {
google.maps.event.addDomListener(document.getElementById("zoom_"+title), 'click', function(){
if (document.getElementById("zoom_"+title).innerHTML == "Zoom In"){
map.setCenter(google_position);
map.setZoom(14);
document.getElementById("zoom_"+title).innerHTML = "Zoom out";
} else {
map.setCenter(new google.maps.LatLng(53.5, -2.2));
map.setZoom(6);
document.getElementById("zoom_"+title).innerHTML = "Zoom In";
}
});
}
クリックが 2 回聞こえるためズームインおよびズームアウトしているため、最終的な効果は何もありません。ただし、情報ウィンドウで img タグを削除するだけですべて解決するようです。
img タグが存在すると、スクリプトが 1 回のクリックを 2 回として解釈するという地上的な理由はありますか? あまりにも多くのクリックが登録されているケースを多く見てきましたが、一般的に何が原因でしょうか?
誰でもこれを解決する方法をアドバイスできますか? ありがとう。