1 回答

TA貢獻1995條經驗 獲得超2個贊
問題是,當您在偵聽器中添加一個函數并將其添加到該函數時,()它會直接執行,而不是在執行偵聽器時執行。
所以正確的是:_newMarker.addEventListener('click', markerDetails)
將您的代碼更改為:
for (obj in Allpoints){
_newMarker = L.marker(Allpoints[obj].LatLong,
{title: Allpoints[obj].names,
riseOnHover: true,
},
).addTo(mymap);
_newMarker.data = Allpoints[obj]; // save the objectData on the marker
allMarkers.push(_newMarker);
_newMarker.on('click', markerDetails);
}
function markerDetails(e){
var currentMarker = e.target;
var obj = currentMarker.data; //your objectData
$("#returnControlName").html(currentMarker.controlName);
$("#returnControlEastings").html(controlEastings);
$("#returnControlNorthings").html(controlNorthings);
}
添加回答
舉報