Javascript 谷歌地图标记事件侦听器单击
我有一个谷歌地图标记的问题。实际上,在我的地图上,我添加了几个带有事件侦听器的标记,用于在单击时触发事件,但它们都用于触发相同的函数Javascript 谷歌地图标记事件侦听器单击,javascript,google-maps,Javascript,Google Maps,我有一个谷歌地图标记的问题。实际上,在我的地图上,我添加了几个带有事件侦听器的标记,用于在单击时触发事件,但它们都用于触发相同的函数 for(var j = 0; j < lat_long.length; j ++) { markers[j] = new google.maps.Marker({ position: latitudeAndLongitudeOne, icon: self.icon, scaledSize: new google.maps.Size(5
for(var j = 0; j < lat_long.length; j ++) {
markers[j] = new google.maps.Marker({
position: latitudeAndLongitudeOne,
icon: self.icon,
scaledSize: new google.maps.Size(50, 50),
map: self.map,
title: lat_long[i].name
});
google.maps.event.addListener(markers[j], 'click', function() {
alert(j);
});
for(var j=0;j
}
我有一个警报(x),x是插入的最后一个项目的id。不管我点击什么标记
有什么想法吗?
谢谢你这是因为你不能像你那样定义标记。创建一个全局数组,并将每个已创建标记的实例推入该数组 因此: 对于所有标记,定义一个数组以保留每个已创建标记的引用:
var markers = []; //Global Marker Array
function printMarker(lat, lng){
var marker = new google.maps.Marker({
position: {lat: lat, lng: lng},
icon: icon,
map: map
});
markers.push(marker);
}
现在只需将clickListener添加到循环中标记的当前引用中 var标记=[];
var markers= [];
for(var i = 0; i < lat_long.length; i ++) {
var marker = new google.maps.Marker({
position: latitudeAndLongitudeOne,
icon: self.icon,
scaledSize: new google.maps.Size(50, 50),
map: self.map,
title: lat_long[i].name
});
marker.addListener('click', function() {
alert(marker.title);
});
markers.push(marker);
}
对于(变量i=0;i
我不确定,但您可以试试对不起,我刚刚编写了整个代码的一部分,正如您所看到的,我使用的是数组,声明不在我编写的部分中,事实上我在地图上有标记。地图上有标记不是问题!问题是能够点击并触发“正确”的代码。不知道我是否说得很清楚。请原谅我的英语不好