为地图标记提供唯一ID,然后访问画布外部

时间:2013-03-07 08:41:41

标签: javascript google-maps-api-3

我在地图上创建了一系列标记。我在画布外面列出了这些标记。我想了解并创建这些之间的一些互动。

我的标记是这样创建的:

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?

1 个答案:

答案 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]。