谷歌地图JavaScript-向一个地图添加多个标记
我很难在JavaScript中将事件处理程序设置为GoogleMaps标记。下面是我的代码:谷歌地图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
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(“数据索引”)
,看看您是否可以使用它来获得正确的标记。干杯,这非常有效。