我尝试在每个地图标记点击上添加一个功能。因此,每个地图标记单击执行另一个功能这是我的功能:
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()
});
有什么想法吗?
答案 0 :(得分:2)
你可以做的是依赖于作为windows范围一部分的函数,并像这样动态引用它们:
google.maps.event.addListener(marker, "click", function() {
window[data.funkcija]();
});
请参阅http://derek.io/blog/2009/dynamic-function-names-in-javascript/