這個問題在這里已經有了答案: 如何將引數傳遞給 addEventListener 偵聽器函式? (32 個回答) 12 天前關閉。
除了事件之外,我還想為此函式發送其他引數。這是在單擊插件時在彈出視窗中顯示發送到該函式的資訊。我怎樣才能做到這一點?
var bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: "#fd7e14",
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: "rgba(253,126,20,0.62)",
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
area_info = {"name" : "1", "shipping_cost" : 100}
bermudaTriangle.addListener("click", showArrays);
infoWindow = new google.maps.InfoWindow();
function showArrays(event, area) {
let contentString =
'<div >'
'<div >name:</div>'
area.name
'<br>'
'<div >shipping_cost :</div>'
area.shipping_cost
'$'
'<br></div>'
;
// Replace the info window's content and position.
infoWindow.setContent(contentString);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
}
當我以bermudaTriangle.addListener("click", showArrays(area_info) )形式向函式發送資訊時,我不知道如何發送event. 當我像這樣呼叫函式時bermudaTriangle.addListener("click", showArrays(bermudaTriangle, area_info) ),event它不能正常作業。我嘗試了這個,但它仍然沒有奏效。
bermudaTriangle.addListener("click", showArrays);
bermudaTriangle.area = area_info;
和 showArrays:
function showArrays(event, area) {
let contentString =
'<div >'
'<div >name:</div>'
event.currentTarget.name
'<br>'
'<div >shipping_cost :</div>'
event.currentTarget.shipping_cost
'$'
'<br></div>'
;
// Replace the info window's content and position.
infoWindow.setContent(contentString);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
}
uj5u.com熱心網友回復:
該Polygon的click事件監聽器只需要一個引數。這意味著庫在呼叫函式時傳遞的引數不超過一個。
如果您需要的資訊沒有附加到event物件上,您必須通過其他方式檢索它。
如果需要自己傳引數,可以寫一個高階函式:
function showArrays(area) {
return function (event) {
let contentString =
'<div >'
'<div >name:</div>'
area.name
"<br>"
'<div >shipping_cost :</div>'
area.shipping_cost
"$"
"<br></div>";
// Replace the info window's content and position.
infoWindow.setContent(contentString);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
};
}
bermudaTriangle.addListener("click", showArrays(area));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/313504.html
標籤:javascript 谷歌地图
