不仅在init上打开时,还可以调用信息窗口内容的函数



我有一些带有标记的对象。这些对象有动态数据,我想在对象标记的信息窗口中输出它们。到目前为止,这就是我所拥有的:

function createRandomObjectWithAMarker() {
var marker;
var aData = "dataToDisplay";
var infowindow = new google.maps.InfoWindow({
content:callThisFunctionWhenOpenWindow(aData)
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
randomObject = {
/*
someData
*/
marker: marker
};
return randomObject;
}

我希望在单击标记时调用此函数,以将返回的modifiedData显示为infoWindowcontent

function callThisFunctionWhenOpenWindow(aData){
/*
do some stuff on aData
*/
return modifiedData;
}

但实际上,这个函数只调用一次:只有当我用createRandomObjectWithAMarker()的调用初始化randomObject时。因此,如果我在一段时间后显示infoWindow,当数据与脚本启动时不同时,它仍然会显示相同的输出。有办法做到这一点吗?如果是,如何?

试试这样的东西?

这样,只有当您单击标记时,才会创建信息窗口(及其数据(

function createRandomObjectWithAMarker() {
var marker;
var aData = "dataToDisplay";
marker.addListener('click', function() {
var infowindow = new google.maps.InfoWindow({
content:callThisFunctionWhenOpenWindow(aData)
});
infowindow.open(map, marker);
});
randomObject = {
/*
someData
*/
marker: marker
};
return randomObject;
}

最新更新