所以我有两个 html 按钮,每个按钮运行不同的功能(两个功能都在下面)。基本上,您单击两个按钮之一将 Google Maps actionlistener 添加到地图中。我已经成功地让它工作了。唯一的问题是我只希望 actionlistener 一键可用。在那一次单击之后,我希望用户必须在 actionlistener 再次“收听”之前单击另一个按钮。我希望这是有道理的。
function addLaunch() {
google.maps.event.addListener(map, "click", function(event) {
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
infowindow.open(map, marker);
});
};
function addFishing() {
google.maps.event.addListener(map, "click", function(event) {
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
fishinfowindow.open(map, marker);
});
};
所以我只是尝试了这个:
function addLaunch(setBoolean) {
var clicked = new Boolean(false);
clicked.boolValue = setBoolean;
if (clicked = true) {
google.maps.event.addListener(map, "click", function(event) {
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
infowindow.open(map, marker);
clicked.boolValue = false;
});
}
else {
google.maps.event.clearListeners(map, "click");
}
};
它没有用......请指出我正确的方向......(顺便说一句,按钮将“true”传递给'setBoolean'。
这可以在第一次单击后禁用所有动作侦听器。但是再次单击按钮后它不会重置。
var temp = true;
function addLaunch() {
if (temp == true) {
google.maps.event.addListener(map, "click", function(event) {
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
infowindow.open(map, marker);
temp = false;
if (temp == false) {
google.maps.event.clearListeners(map, "click");
}
});
}
}