点击地图标记上的通话功能 - Google Map V3

时间:2014-08-11 10:20:55

标签: jquery google-maps-api-3

我尝试在每个地图标记点击上添加一个功能。因此,每个地图标记单击执行另一个功能这是我的功能:

function test1() {  
  jQuery('#Nav1').toggle();
}
function test2() {  
  jQuery('#Nav2').toggle();
}

以下是我的标记:

var markers = [
  { lat: 43.963395, lng: 15.419338, name: "Marker1", icon:'http://maps.google.com/mapfiles/ms/icons/red-dot.png', funkcija: "test1" },
  { lat: 45.001831, lng: 14.89686, name: "Marker2", icon:'http://maps.google.com/mapfiles/ms/icons/red-dot.png', funkcija: "test2" }
];

这是我创建标记的功能:

for (index in markers) addMarker(markers[index]);
function addMarker(data) {
  // Create the marker
  var marker = new google.maps.Marker({
    position: new google.maps.LatLng(data.lat, data.lng),
    map: map,
    title: data.name,
    icon: data.icon

  });
google.maps.event.addListener(marker, "click", function() {
     // do the function
});

我试着用这个但没有。

google.maps.event.addListener(marker, "click", function() {
   data.funkcija()
});

如果我手动输入功能,那么它的工作原理与所有标记的功能相同

google.maps.event.addListener(marker, "click", function() {
   test1()
});

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你可以做的是依赖于作为windows范围一部分的函数,并像这样动态引用它们:

google.maps.event.addListener(marker, "click", function() {
   window[data.funkcija]();
});

请参阅http://derek.io/blog/2009/dynamic-function-names-in-javascript/