我正在构建一个谷歌地图应用程序,我需要将事件特定数据传递给JavaScript中的另一个函数。
当我点击地图的一部分时,InfoWindow会弹出信息,例如latLng。它还有一个按钮。单击时,它会打开包含更多信息的叠加层,其中一部分信息来自click事件。我需要将event
和this
对象传递给按钮,以在叠加层中显示信息。
首先我创建事件:
// Add a listener for the mouse event.
// In the google maps scope
google.maps.event.addListener(SomeMapArea, 'click', showTB);
然后我有文本框功能:
// In the google maps scope
function showTB(event) {
var contentString = event.latLng +
'<br>' + '<button onclick="moreInfo(event, this)">More</button>';
infoWindow.setContent(contentString);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
}
当我点击按钮时,会显示包含更多信息的叠加层:
// In global scope
function moreInfo(e, t){ //using (event, this) here causes 'missing formal parameter' error
// Overlay code
var overlayContent = e.latLng + t.someAttribute;
document.getElementById("content").innerHTML = overlayContent;
}
但是,event
和this
未在函数moreInfo
中定义。如何将这两个对象传递到moreInfo
以便我可以读取它们的属性?
答案 0 :(得分:0)
试一下
var contentString = event.latLng +
'<br>' + '<button onclick="moreInfo('+event+','+this+')">More</button>';