我使用標記和infowindows創建Google地圖。我希望每個infowindow都有一個縮放按鈕,可以讓Google地圖放大並居中放置相應的標記。導致點擊事件觸發兩次的圖像?
查看此jsfiddle爲例。 infowindow的代碼相對簡單:
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中它總是失敗。原因是因爲一個點擊是以某種方式被解僱兩次。所以這個功能:
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";
}
});
}
是放大和縮小,因爲它聽到兩個點擊,所以淨效果是什麼。 但是,只是刪除infowindow中的img標籤似乎可以解決所有問題。
爲什麼img標籤的存在會導致腳本將一次點擊解釋爲兩個,是否有任何地上的理由?我見過很多點擊註冊過多的情況 - 通常會導致這種情況?
任何人都可以建議如何解決這個問題嗎?謝謝。