Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图标记事件侦听器单击_Javascript_Google Maps - Fatal编程技术网

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

我不确定,但您可以试试

对不起,我刚刚编写了整个代码的一部分,正如您所看到的,我使用的是数组,声明不在我编写的部分中,事实上我在地图上有标记。地图上有标记不是问题!问题是能够点击并触发“正确”的代码。不知道我是否说得很清楚。请原谅我的英语不好