我在地图上创建了一系列标记。我在画布外面列出了这些标记。我想了解并创建这些之间的一些互动。
我的标记是这样创建的:
var markers = [];
var marker = [];
var i;
// var places is an array of locations
for (var i=0;i<places.length;i++) {
var place = places[i];
var latLng = new google.maps.LatLng(place[1], place[2]);
marker[i] = new google.maps.Marker({
position: new google.maps.LatLng(place[1], place[2]),map: map
});
marker[i].set('id','marker_'+i);
markers.push(marker[i]);
}
我想也许可以使用MVCObject我可以设置标记的id,例如,我的标记可能会有'marker_1'的ID,我可以通过以下方式使用jquery在DOM中访问它:
$('#marker_0').doSomething();
但事实并非如此。
如何在地图画布和API之外的DOM中为每个标记提供唯一的ID?
答案 0 :(得分:0)
回答我的问题,this answer over here。
我在google地图的初始化函数中创建了一个函数var:
var markers = [];
var marker = [];
var i;
// var places is an array of locations
for (var i=0;i<places.length;i++) {
var place = places[i];
var latLng = new google.maps.LatLng(place[1], place[2]);
marker[i] = new google.maps.Marker({
position: new google.maps.LatLng(place[1], place[2]),map: map
});
marker[i].set('id','marker_'+i);
markers.push(marker[i]);
var mouseoverListener = (function(i) {
return function() {
alert[i];
};
})(i);
}
然后启动addDomListener,如此:
google.maps.event.addDomListener(document.getElementById('place'+i+''), 'mouseover', mouseoverListener);
当我徘徊在我的列表项目上时,它会提醒它应该是标记的索引,因此我可以访问每个标记的控制权而不是alert [i]。