Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

谷歌地图JavaScript-向一个地图添加多个标记

谷歌地图JavaScript-向一个地图添加多个标记,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我很难在JavaScript中将事件处理程序设置为GoogleMaps标记。下面是我的代码: var map = new google.maps.Map(document.getElementById('map-canvas'), { zoom: 8, center: {lat: -35, lng: 149} }); for (var i = 0; i < basketballC

我很难在JavaScript中将事件处理程序设置为GoogleMaps标记。下面是我的代码:

var map = new google.maps.Map(document.getElementById('map-canvas'), {
                zoom: 8,
                center: {lat: -35, lng: 149}
            });
            for (var i = 0; i < basketballCourts.length; i++) {
                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(basketballCourts[i].latitude, basketballCourts[i].longitude),
                    map: map,
                    title: 'Hello World!'
                });
                marker.set("data-index", i);
                google.maps.event.addListener(marker, 'click', function() {
                    console.log(marker.get("data-index"));
                });
            }
var map=new google.maps.map(document.getElementById('map-canvas'){
缩放:8,
中心:{纬度:-35,液化天然气:149}
});
对于(var i=0;i
您会注意到标记有一个单击事件。但是,所有标记的单击事件都是相同的。每次单击标记时都应该记录不同的数字,但无论单击哪个标记,都会得到相同的响应


我不知道如何解决这个问题。

发生的事情是,你正在所有篮球场上循环,为每个标记创建一个事件侦听器。那很好。但是,该事件侦听器函数如下所示:

console.log(marker.get(“数据索引”)

该函数是响应标记单击而执行的,而不是在您定义它时执行的。当函数执行时,
marker
的值将是它在所有篮球场循环结束时的值


使用@MiltoxBeyond的建议,尝试使用
this.get(“数据索引”)

尝试
this.get(“数据索引”)
,看看您是否可以使用它来获得正确的标记。干杯,这非常有效。