したがって、それぞれが異なる機能を実行する2つのhtmlボタンがあります(両方の機能は以下にあります)。基本的に、2 つのボタンのいずれかをクリックして、Google マップ アクションリスナーをマップに追加します。私はそれをうまく機能させました。唯一の問題は、アクションリスナーをワンクリックで利用できるようにしたいということです。その1回のクリックの後、アクションリスナーが再び「聞く」前に、ユーザーが別のボタンをクリックする必要があります。それが理にかなっていることを願っています。
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");
}
});
}
}