2
我在这里的问题是,功能google.maps.event.addListener(marker, 'click', (function()
的作品,然后我点击第一个标记。点击所有其他标记不起作用。我希望这个函数能够处理所有的标记。这里有什么问题?功能只适用于1标记
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function() {
MyApp.xxx = this.position;
infowindow.setContent('x' + name[i][3] + '' + name[i][4] + 'x');
infowindow.open(map, marker);
}
})(marker, i));
}
var markerroad;
google.maps.event.addListener(marker, 'click', (function() {
var request = {
origin: MyApp.xxx,
destination: 'Kaunas',
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
})
}));
其他标记是否存在加载或他们添加后?如果是这样,你需要'.on('click')'而不是'.click()',它只绑定运行时存在的节点。 – hexblot 2013-04-29 14:26:35
除了上面的代码外,没有更多的代码可用于生成标记。 – user1876234 2013-04-29 14:29:47
为什么你的'for'循环之外的第二个'google.maps.events.addListener'? – Ian 2013-04-29 14:38:37