如何为Google Maps API进行点击并暂停活动?我在setTimeout
事件中使用click
,但效果不佳。
当我第一次点击并按住5秒钟时,它会很有效,因为用户会显示警告消息。但是在第一次尝试之后,它会在您平移或缩放地图时开始显示警告消息。
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
google.maps.event.addListener(map, 'click', function() {
setTimeout(function() {
alert("Hello, World.");
}, 5000);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
您可以尝试here。
答案 0 :(得分:1)
你持有的事实'当您单击地图时无关紧要...一旦您单击,事件侦听器就会激活。只需将setTimeout设置为5秒即可发生任何事情。
因此,当您点击地图进行拖动或调整缩放时,也会触发“点击”按钮。事件。
你可能需要的是' dragstart'和' zoom_changed'事件。在这些中,设置某种防止警报发生的标志,例如: (这是未经测试的,我认为不会有用,但会给你一些想法):
var mapClicked = true;
google.maps.event.addListener(map, 'dragstart', function() {
mapClicked = false;
});
google.maps.event.addListener(map, 'dragend', function() {
mapClicked = true;
});
google.maps.event.addListener(map, 'zoom_changed', function() {
mapClicked = false;
});
google.maps.event.addListener(map, 'click', function() {
setTimeout(function() {
if (mapClicked) {
alert("Hello, World.");
}
}, 5000);
});