2013-03-27 74 views
0

我的雙擊事件不起作用,當我雙擊標記時,它不會刪除。請幫忙 :)。這是我的代碼。 :)我試圖通過編輯一些東西來解決它,但它似乎沒有工作。我的雙擊事件不起作用,當我雙擊標記時,它不會刪除

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
html { height: 100% } 
body { height: 100%; margin: 0; padding: 0 } 
#map_canvas { height: 100% } 
</style> 
<script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC5dtn-wkog5K5cFZ0hN1uyiWo2kB89Lk0&sensor=true"> 
</script> 
<script type="text/javascript"> 
var map; 
var markersArray = []; 

function initialize() { 
    var haightAshbury = new google.maps.LatLng(37.7699298, -122.4469157); 
    var mapOptions = { 
     zoom: 12, 
     center: haightAshbury, 
     mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

    google.maps.event.addListener(map, 'click', function(event) { 
     addMarker(event.latLng); 
    }); 

    google.maps.event.addListener(map, 'dblclick', function() { 
     clearOverlays(); 
    }); 
} 

function clearOverlays() { 
    if (markersArray) { 
     for (i in markersArray) { 
     markersArray[i].setMap(null); 
     } 
    } 
} 

function addMarker(location) { 
    marker = new google.maps.Marker({ 
     position: location, 
     map: map 
    }); 
    markersArray.push(marker); 
} 

function deleteMarker() { 
    map.setMap(null); 
} 
</script> 
</head> 
<body onload="initialize()"> 
<div id="map-canvas" style="width:100%; height:100%"></div> 
</body> 
</html> 
+0

都 '點擊' 和 'DBLCLICK' 事件射擊?你在地圖或標記上雙擊嗎?如果雙擊標記,則需要向標記添加事件偵聽器,而不是地圖 – Plato 2013-03-27 16:00:17

回答

0
function addMarker(location) { 
    marker = new google.maps.Marker({ 
    position: location, 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'dblclick', 
    // closure so the callback remembers the marker 
    (function(what){ 
     return function() { 
     what.setMap(null); 
     // you might want to remove it from markersArray here too 
     }; 
    )(marker) 
); 
    }); 

    markersArray.push(marker); 
}